Skip to content

Markellowww/kafka-microservice-ecommerce

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

kafka-microservice-ecommerce

TODO:

Текущие задачи:

  • Сделать DLQ
  • Сделать TransactionalOutbox
  • Добавить Redis
  • Сделать механизм кеширования
  • Отрефакторить все конфиги и application.yml

Реализовать:

  • API Gateway + Vault + Circuit Breaker (подправить Swagger)
  • Spring Eureka
  • Spring Cloud Config
  • Logger
  • JUnit + Mockito

Что представляет собой проект?

  1. Kafgen
  • REST: принимает запросы и генерирует рандомные "сырые" заказы
  • Kafka: producer отправляет заказы в orders.incoming
  1. Ingestion Service
  • Kafka: consumer слушает orders.incoming
  • MongoDB: сохраняет сырые заказы
  • REST: вызывает Order Processing Service
    • Реализует Dead Letter Queue (Topic "orders.incoming.failed) в случае неудачной обработки
    • Эндпоинты: получения "сырого" заказа из MongoDB (Redis)
  1. Processing Service
  • REST: принимает запросы от Ingestion Service
  • PostgresSQL: сохраняет заказы
  • Kafka: producer публикует обработанные заказы в orders.processed
    • Реализует TransactionalOutbox для обработки REST запроса
    • Эндпоинты: получение обработанного заказа из PostgresSQL (Redis)

Компоненты

  1. Kafka Topics:
  • orders.incoming используется для входящих "сырых" заказов
  • orders.incoming.failed используется в качестве очереди в DLQ
  • orders.processed используется для выходных данных обработанных заказов
  1. Базы данных:
  • MongoDB: хранит все входящие заказы ("сырые" данные)
  • PostgresSQL: хранит все обработанные заказы и outbox
  • Redis: кеширует запросы на получение "сырых" и обработанных заказов

About

A microservice order processing system. Full cycle support from order creation to storage.

Topics

Resources

Stars

Watchers

Forks