Orders Project¶
A microservices-based food delivery system exploring event-driven architecture, distributed systems patterns, and container orchestration. Built with FastAPI, MongoDB, Redis Streams, and React.
Deployed on a self-hosted Kubernetes cluster (Raspberry Pi) at orders.karolmarszalek.me.
What Makes This Interesting¶
Event-driven choreography – services communicate exclusively through Redis Streams, with no synchronous inter-service calls
Guaranteed message delivery – consumer groups, automatic retries, and a dead-letter queue ensure no event is silently lost
ACID transactions + eventual consistency – MongoDB transactions guard local state, while async events propagate changes across services
Real-time push – WebSocket connections deliver order status updates to the browser the moment they happen
Full observability – Prometheus metrics, Grafana dashboards, and Loki log aggregation with structured correlation IDs
Dual deployment – runs identically on Docker Compose (local) and Kubernetes with Helm (production)