A made-up online shop: levels 1–3, tables, scenarios and decisions. Select a card to read its properties.

Demo project · view only
Create your project
Buys goods
Buys from a phone
Runs the catalog
Calls the API
Calls the API
Keeps sessions
Places orders
Searches goods
Creates an order
Starts the payment
Saves the order
Reads/writes
Charges the payment
Publishes events
OrderPlaced
stock.changed
Reads/writes
Stores photos
Notifications
Sends SMS
Reads sales
Reads the cart
Sends the order
Makes the payment
Requests payment
Authorizes the card

Person

Customer

Picks goods and places orders

Person

Shop manager

Runs the catalog and handles orders

Online shop

Java 21Spring BootReact

Web shop

ReactTypeScriptNext.js

View (UI)

CartPage

Goods in the cart and their total

View (UI)

CheckoutPage

Address, delivery and payment

State store

CartStore

Redux Toolkit

Client app

Mobile app

KotlinSwift

Catalog and orders on the phone

Container

api-gateway

Java 21Spring Cloud Gateway

Single entry point: tokens, limits

orders-service

Java 21Spring BootDocker

API / controller

OrderController

Spring Web

API / controller

PaymentController

Message handler

StockEventsListener

Service

OrderService

Repository

OrderRepository

Spring Data JPA

Adapter

BankClient

OpenFeign

Adapter

OrderEventsPublisher

Spring Kafka

Container

catalog-service

Go 1.23gRPC

Goods, prices and stock

Scheduled job

nightly-report

Pythoncron 02:00

Nightly sales report

SQL database

Orders DB

PostgreSQL 16

Orders, payments and refunds

NoSQL database

Catalog Mongo

MongoDB

Goods, brands and prices

Cache

Sessions and carts

Redis

Sessions and carts of customers

Event topic

order-events

Kafka

Order events for other services

Queue

notifications

RabbitMQ

Messages to send to customers

File storage

Media

S3

Product photos

payment-service

Java 21Spring Boot

API / controller

PaymentController

Adapter

AcquirerClient

OpenFeign

Calls the acquiring bank

External system

Acquiring bank

REST

Accepts card payments

External system

SMS gateway

HTTP

Sends order status messages

Tags

Core domain

2

Legacy

1

Team A

2