Баг, который почти стоил денег пользователя

Работая с финтех-сервисами и инвестиционными системами, я убедился в одной простой вещи: самые опасные баги — это не падения приложения.

Самые опасные — тихие ошибки в данных.

Один из кейсов, с которым я сталкивался — проблема синхронизации статусов операции между микросервисами.

Что происходило:

API возвращал пользователю статус операции как завершённую, хотя в другом сервисе операция всё ещё находилась в обработке.

При определённой последовательности действий пользователь мог:

• повторно отправить операцию • увидеть некорректный баланс • получить дублирование транзакций

Проблема проявлялась только:

— при высокой нагрузке — при асинхронной обработке — при задержках между сервисами

Найти её получилось только через:

• интеграционное тестирование • анализ логов через Kibana • проверку данных в PostgreSQL

После этого кейса я всегда уделяю особое внимание:

— синхронизации микросервисов — повторным запросам — idempotency операций

Интересно, сталкивались ли вы с похожими кейсами в микросервисной архитектуре?

#тестирование #баг #qa

Баг, который почти стоил денег пользователя | Сетка — социальная сеть от hh.ru