Skip to content
@ordered-system

Ordered

Distributed e-commerce marketplace (Allegro-inspired), built to practice microservices, event-driven architecture, and observability.

ordered-system

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.

Architecture · Run it locally · Deploy it


What this is

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

Full write-up: docs/ARCHITECTURE.md.

Repositories

Repo What it is
🚪 ordered-gateway Reactive API gateway — routing, JWT verification, docs aggregation
🔍 ordered-eureka Service discovery
⚙️ ordered-config-server Centralized config (JWT secret)
📦 ordered-order-service Orders, checkout, Stripe payments
🛒 ordered-product-service Catalog, cart, stock reservations
👤 ordered-user-service Users, auth, JWT issuance
ordered-engagement-service Reviews, browsing history
🧩 ordered-commons Shared library — JWT claims filter, exception handling
🐳 ordered-infra Docker Compose (dev + prod), Caddy, Prometheus/Grafana/Jaeger — start here to run everything
🧪 ordered-load-tests Gatling load tests + end-to-end smoke test
🏛️ ordered-backend The original monolith (frozen/archived — this is where it all started)

Stack

Java 21 · Spring Boot 4.1 · Spring Cloud (Gateway, Eureka, Config) · PostgreSQL · MongoDB · Redis · Kafka (KRaft, outbox pattern) · JWT · Stripe + Resilience4j · Docker · Caddy · Prometheus / Grafana / Jaeger · Gatling

Try it

git clone https://github.com/ordered-system/ordered-infra.git
cat ordered-infra/docs/GETTING_STARTED.md

Built by Adam Dybcio · MIT licensed

Popular repositories Loading

  1. ordered-backend ordered-backend Public

    Legacy e-commerce monolith built with Spring Boot.

    Java 1

  2. ordered-eureka ordered-eureka Public

    Service discovery (Netflix Eureka) for the ordered-system microservices.

    Java 1

  3. ordered-gateway ordered-gateway Public

    Reactive API gateway for ordered-system — routing, edge JWT verification, and aggregated OpenAPI docs across all services.

    Java 1

  4. ordered-order-service ordered-order-service Public

    Orders, checkout orchestration, and Stripe payments (Resilience4j + Kafka outbox) — part of ordered-system.

    Java 1

  5. ordered-product-service ordered-product-service Public

    Product catalog, cart, and checkout stock reservations with Redis cache-aside — part of ordered-system.

    Java 1

  6. ordered-user-service ordered-user-service Public

    Users, JWT authentication/authorization, and address book — part of ordered-system.

    Java 1

Repositories

Showing 10 of 12 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…