A distributed e-commerce marketplace, built to learn distributed systems — not to sell anything.
Inspired by Allegro. Decomposed from a monolith into independent services with Kafka, service discovery, centralized config, and a full observability stack.
ordered-system started as ordered-backend, a single Spring Boot monolith with a product catalog, cart, orders, Stripe payments, reviews, and JWT auth — fully functional and fully observable on its own. Once that had done its job of teaching Kafka, the outbox pattern, and a mixed PostgreSQL/MongoDB/Redis datastore setup, it was decomposed using the Strangler Fig pattern into the services below — because a monolith, however well-built, can't teach service discovery, distributed config, or coordinating a multi-service deployment. That's what this decomposition is for.
The system
Internet
│
┌──────▼──────┐
│ gateway │ JWT verification, routing,
│ │ aggregated Swagger docs
└──────┬──────┘
│
┌───────────┬───────────┼───────────┬───────────┐
┌────▼────┐ ┌────▼─────┐┌────▼─────┐┌────▼──────────┐
│ order │ │ product ││ user ││ engagement │
│ service │ │ service ││ service ││ service │
└────┬────┘ └────┬─────┘└────┬─────┘└────┬───────────┘
│ │ │ │
PostgreSQL PostgreSQL PostgreSQL MongoDB
+ Redis
Docker Compose (dev + production), Caddy reverse proxy, and the Prometheus/Grafana/Jaeger observability stack for ordered-system. Start here to run the whole platform.
There was an error while loading. Please reload this page.
Most used topics
Loading…
Uh oh!
There was an error while loading. Please reload this page.
You are visitor 01402503 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.