Михаил Баркалов › michaelbarkalov Сбер ID
Век живи — век код держись! Семь раз отмерь — один раз отрелизь!
Рейтинг
68
№ 56 221 в каталоге
Отзывы
0
Профессионализм
-/10
Коммуникация
- /10
Город
Воронеж
Опыт работы
2 года
На сайте с
2025 года
Юридический статус
Частное лицо

Платёжный микросервис с очередями и гарантированной доставкой событий

Используемые навыки Docker FastAPI PostgreSQL Python RabbitMQ

Описание

Тестовое задание по вакансии backend-разработчика: спроектировать асинхронный микросервис обработки платежей с гарантированной доставкой событий. Требования: идемпотентность создания платежа, асинхронная обработка через брокер сообщений, webhook-уведомления о результате, обработка сбоев.

Решение

Реализовал на FastAPI + PostgreSQL + RabbitMQ: создание платежа с ключом идемпотентности (повторный запрос не создаёт дубликат), паттерн Outbox для атомарной записи события вместе с платежом, фоновый poller публикует события в очередь, consumer обрабатывает платёж и отправляет webhook с retry (экспоненциальная задержка) и Dead Letter Queue. Миграции Alembic, развёртывание через Docker Compose.

Результат

Сервис обрабатывает платежи асинхронно без потери событий даже при падении брокера, webhook гарантированно доставляется или уходит в DLQ для ручной разборки. Покрытие тестами. Код: github.com/EryyynIT/async-payment-processing-service

Оценили проект:

Другие проекты

Все проекты →
Веб-разработка и IT Личный сайт-визитка на HTML/CSS/JS
Личный сайт-визитка на HTML/CSS/JS
5
Веб-разработка и IT rise — генератор проектов на Rust (CLI-скаффолдер)
rise — генератор проектов на Rust (CLI-скаффолдер)
4
Веб-разработка и IT ADNova — CPA-платформа с платёжными интеграциями и event sourcing
ADNova — CPA-платформа с платёжными интеграциями и event sourcing
18
Веб-разработка и IT Брокер очередей на Go с HTTP API — in-memory, только стандартная библиотека
Брокер очередей на Go с HTTP API — in-memory, только стандартная библиотека
4