Skip to content
ishkaiPublic

About

L0 task.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

11 Commits

Folders and files

Repository files navigation

Order Service (Kafka + PostgreSQL + Go)

Сервис получает сообщения из Kafka, сохраняет их в PostgreSQL, кэширует в памяти и отдает через HTTP API.
Также есть простой фронт на HTML для поиска заказа, DLQ для невалидных сообщений.


⚙️ Стек

  • Go — основной сервер
  • PostgreSQL — база данных
  • Kafka — очередь сообщений
  • Docker Compose — запуск
  • HTML — фронтенд для просмотра заказа

🗣Основные команды

Запуск инфраструктуры

docker compose up -d --build

Проверка контейнеров

docker compose ps

Просмотр логов приложения

docker compose logs -f app

Генератор тестовых заказов

docker compose up generator

Проверка HTTP

http://localhost:8080

Сделаны Unit-Tests для Consumer и Server

Запуск теста

go test ./

📡 API

Отправка заказа вручную

docker compose exec kafka bash -lc 'kafka-console-producer --bootstrap-server kafka:9092 --topic orders'

После вставляем JSON заказ в одну строку

Получить заказ по order_uid

Пример:

curl http://localhost:8080/order/test124

📝 Пример заказа

{
  "order_uid": "test124",
  "track_number": "TRACK124",
  "entry": "WBIL",
  "delivery": { "name": "John Doe", "city": "New York" },
  "payment": { "transaction": "txn124", "amount": 1500, "currency": "USD" },
  "items": [
    { "rid": "RID123", "name": "T-shirt", "brand": "Nike", "price": 500 },
    { "rid": "RID124", "name": "Sneakers", "brand": "Adidas", "price": 800 }
  ]
}

🗂Структура проекта

cmd/
  app/          
  generator/    

project/
  cache/
  consumer/
  database/
  http/
  model/

migrations/
docker-compose.yml
Dockerfile

✅В проекте сделано:

  • Подключение к Kafka
  • Транзакционное сохранение в PostgreSQL
  • Валидация входящих данных
  • DLQ
  • In-memory cache
  • Восстановление кэша при старте
  • HTTP API
  • HTML интерфейс
  • Генератор тестовых данных
  • Docker Compose
  • SQL Миграции
  • Unit-тесты

About

L0 task.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages