Fetch

Private

A polyglot microservices food delivery platform, built as a deep dive into distributed transactions, failure isolation, and observability.

Node.js
TypeScript
Python
FastAPI
PostgreSQL
RabbitMQ
Redis
Docker
Kubernetes
Node.js
Private repoDemo coming soon

// architecture

6 services behind an API gateway · database-per-service PostgreSQL · RabbitMQ Saga with idempotency, DLQs, and circuit breakers · OpenTelemetry traces to Jaeger, metrics to Prometheus/Grafana · Docker and Kubernetes

// overview

Six independently deployable services (auth, users, restaurants, orders, payments, delivery) spanning Node.js/TypeScript and Python/FastAPI, behind an API gateway with database-per-service PostgreSQL. Order placement runs as a Saga over RabbitMQ, every service is traced end to end, and the whole system runs containerised on Kubernetes.

  • ·Six independently deployable services behind an API gateway: auth, users, restaurants, orders, payments, delivery.
  • ·Polyglot by design. Node.js/TypeScript and Python/FastAPI services interoperating over REST.
  • ·Database-per-service PostgreSQL, avoiding shared-database coupling between services.
  • ·RS256-signed JWTs verified independently at each service boundary via public key, so no service has to call auth to authenticate a request.
  • ·Event-driven order flow over RabbitMQ implementing the Saga pattern for distributed transactions, with idempotency keys and the inbox pattern preventing duplicate processing on redelivery.
  • ·Dead letter queues, retry policies, and circuit breakers isolate failures instead of letting them cascade.
  • ·Instrumented end to end with OpenTelemetry, exporting traces to Jaeger and metrics to Prometheus and Grafana, with request IDs propagated through structured logs across every service.
  • ·Containerised with Docker and orchestrated on Kubernetes, using Redis for caching and idempotency state.

Architecture diagram

coming soon

Demo walkthrough

coming soon