Внедрение распределенной виртуальной финансовой системы

#transactions #scaling #finance #distributed-transactions #consistency

Вопрос:

Я работаю над сервисом, который отвечает за денежные транзакции. Я придумал решение для одной базы данных (чтобы внести все изменения в одну транзакцию в базе данных), но оно не отвечает моим требованиям. Я хочу, чтобы он был горизонтально масштабируемым и последовательным одновременно.

Служба должна иметь следующие функции:

  • получить текущий баланс
  • получение транзакций пользователей
  • обрабатывайте новые транзакции (переводите деньги со счета A на счет B) и возвращайте подтверждение

Последний из них труднее всего реализовать из-за множества точек сбоя. Транзакции должны быть обработаны только один раз, и необходимо гарантировать, что в случае сбоя одной из транзакций изменений эта транзакция должна быть откатана.

Я прошу каких-либо подсказок о технологиях/фреймворках/алгоритмах, на которые я должен взглянуть.