Backend microservice architecture for a scalable recipe app — built with FastAPI, Keycloak (for auth), and PostgresFTS for search.
- Separate microservices for CRUD operations and search, using Traefik for routing.
- Handle authentication with Keycloak.
- Cache search responses with Redis.
- Full-text search using PostgresFTS eventually switch to Elasticsearch.
- Designed to scale individual components based on usage.
This is a microservice-based application using Docker and Traefik for service routing.
- Python 3.11
- FastAPI
- PostgreSQL
- Alembic
- SQLAlchemy
- ElasticSearch
- Traefik
- Docker
- Keycloak
- Basic CRUD endpoints for recipes
- Dockerized Keycloak auth service
- Search service with PostgresFTS
- Swagger/OpenAPI combined docs
- Traefik routing
- Redis cache for search service
- Role-based access controls
- Rate limiting
- Frontend
git clone https://github.com/JoeBosch/RecipesAtScale
cd RecipeApp
cp .env.example .env
docker-compose up --build
Visit http://localhost/docs for Swagger documentation