Skip to content

21092004Goda/distributed_trading_engine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Distributed Trading Engine (Распределённая торговая система)

Описание проекта

Ты разработаешь микросервисное приложение, имитирующее работу биржевого движка (trading engine). Система будет принимать заявки на покупку/продажу, обрабатывать их в реальном времени, учитывать балансы пользователей и публиковать данные о сделках.

Технологический стек:

Java 17+ (используй современные фичи: Records, Pattern Matching, Virtual Threads)
Spring Boot 3 (для микросервисов)
Kafka (обмен сообщениями между сервисами)
gRPC (высокопроизводительное взаимодействие сервисов)
PostgreSQL (транзакции, балансы пользователей)
Liquibase/Flyway (управление миграциями)
Redis (кеширование стакана заявок)
Multithreading & Concurrency (обработка ордеров в реальном времени)
Docker & Kubernetes (развертывание)
Prometheus + Grafana (мониторинг)
TDD (напиши тесты: Unit, Integration, E2E)


Архитектура (3 микросервиса + Kafka + DB)

1. Order Service (gRPC + Kafka)

  • Принимает заявки (ордера) от пользователей по gRPC.
  • Валидирует ордер (проверяет баланс, лимиты).
  • Отправляет ордер в Kafka (orders-topic).

2. Matching Engine (Kafka Consumer + Multithreading)

  • Подписывается на orders-topic.
  • Обрабатывает ордера в реальном времени (FIFO или price-time priority).
  • Использует многопоточность (Virtual Threads или Disruptor Pattern).
  • Формирует "стакан заявок" (order book) в Redis.
  • При совпадении Buy/Sell → создаёт сделку (trade) и отправляет в trades-topic.

3. Wallet Service (gRPC + PostgreSQL)

  • Управляет балансами пользователей.
  • Обновляет баланс после сделки (транзакционно).
  • Предоставляет gRPC API для проверки баланса.

+ Notification Service (опционально)

  • Подписывается на trades-topic и уведомляет пользователей (WebSocket / Email).

Что прокачаешь:

🔹 Микросервисы (разделение ответственности)
🔹 Kafka (event-driven архитектура)
🔹 gRPC (быстрое взаимодействие сервисов)
🔹 Многопоточность (обработка ордеров с минимальными задержками)
🔹 Транзакции в DB (чтобы не терять деньги пользователей)
🔹 Docker + Kubernetes (деплой)
🔹 Нагрузочное тестирование (JMeter / Gatling)


Бонусные задания:

⭐ Реализуй Circuit Breaker (Resilience4j) для Wallet Service.
⭐ Добавь JWT-аутентификацию (Spring Security).
⭐ Сделай репликацию PostgreSQL для отказоустойчивости.
⭐ Настрой Kubernetes Helm Charts для деплоя.


About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages