Sobes.tech
Middle+

Compito n° 4 (progettazione dell'integrazione nell'architettura del sistema) Sei un analista di sistemi per l'apertura di conti giuridici. È stata ricevuta una richiesta dal cliente aziendale: implementare un servizio di apertura conto. Il servizio di apertura include la creazione di un contratto e la riserva del conto. Quando si apre il conto, il contratto del cliente è stato creato con successo (salvato nel database). Il servizio di riserva ha restituito un errore tecnico. Quali requisiti, come analista di sistemi di apertura di conti giuridici, presenteresti ai FP Contratto e FP Riserva? Opzioni di implementazione dello scenario di integrazione, considerando un'architettura di microservizi distribuita. (Diagramma di sequenza "Apertura di conto corrente per aziende" con i passaggi di interazione tra Cliente, Applicazione Web, Orchestratore di apertura di conti giuridici, FP Contratto e FP Riserva del conto)

sobes.tech AI

Risposta dell'AI

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

Требования к ФП Договор:

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

Требования к ФП Резервирование:

  • Чёткая обработка ошибок с информативными кодами и сообщениями.
  • Возможность повторного вызова операции резервирования без негативных последствий (идемпотентность).

Варианты реализации интеграционного сценария:

  1. Оркестрация с компенсационными транзакциями (SAGA):

    • Оркестратор вызывает создание договора.
    • При успешном создании договора вызывает резервирование счета.
    • Если резервирование не удалось, оркестратор инициирует компенсационную операцию — отмену договора.
  2. Использование очередей и событий (Event-driven):

    • Создание договора и резервирование счета выполняются как отдельные события.
    • При ошибке резервирования публикуется событие отмены договора.
  3. Идемпотентные операции и повторные попытки:

    • Оркестратор повторяет вызов резервирования с контролем состояния.
    • При длительной ошибке инициируется компенсация.

Диаграмма последовательности должна отражать эти шаги, показывая вызовы от клиента к веб-приложению, далее к оркестратору, который последовательно взаимодействует с ФП Договор и ФП Резервирование, обрабатывая ошибки и выполняя компенсации.