Sellers, catalog, cart, checkout and payouts, with event-driven inventory and search.
What is on this board
Parts
- Storefront Web app · Next.js
- Seller panel Web app
- Gateway API gateway
- Catalog Service
- Cart Service
- Orders Service
- Inventory Service
- Payments and split Payment provider · Mercado Pago
- Orders Relational DB · PostgreSQL
- Products Document DB · MongoDB
- Carts Cache · Redis
- Search Search index · Meilisearch
- Events Event stream · Kafka
- Status Email / SMS / push
- Images CDN
- Order saga Saga
How they connect
- Storefront → Images: images
- Storefront → Gateway: HTTPS
- Seller panel → Gateway: HTTPS
- Gateway → Catalog: browse
- Gateway → Cart: add
- Gateway → Orders: checkout
- Catalog → Products: read
- Catalog → Events: product changed
- Events → Search: index
- Cart → Carts: write
- Orders → Inventory: reserve
- Orders → Payments and split: charge
- Orders → Orders: SQL
- Orders → Events: order placed
- Events → Status: tell the buyer
Notes and decisions
- Order saga: No stock after paying? Refund.