Table of content
BlastAPI is a robust and scalable API built using FastAPI to handle user requests for BLAST (Basic Local Alignment Search Tool) operations. It leverages a microservices architecture with RabbitMQ for message queuing and Redis for caching to ensure high performance and reliability.
FastAPI: Provides a modern and high-performance web framework for building APIs.
RabbitMQ: Acts as a message broker, allowing asynchronous processing and communication between services.
Redis: Used for caching to speed up repeated queries and improve the overall performance.
- blastn (2.15.0)
- python (3.12.3)
- poetry (1.8.3)
- docker (version 24.0.2, build cb74dfc)
- rabbitmq service (docker container)
docker run -d --hostname my-rabbit --name some-rabbit -p 5672:5672 -p 15672:15672 rabbitmq:3-management &
- redis service (docker container)
docker run -p 6379:6379 --name docker_redis redis
- rabbitmq service (docker container)
git clone https://github.com/ampersandor/blast-api.git
cd blast-api
poetry shell
poetry install
# Run the fastAPI server
python3 gateway/main.py &
# Run the blast-service
python3 blast-services/main.py &
# Send request to the API
python3 clinet/client.py
DongHun Kim - ddong3525@naver.com