Sobes.tech
Middle+

Taak nr 4 (ontwerp van integratie in de systeemarchitectuur) Je bent een systeemanalist voor het openen van juridische rekeningen. Er is een taak ontvangen van de zakelijke klant: het implementeren van een service voor het openen van rekeningen. De service voor het openen omvat het aanmaken van een contract en het reserveren van de rekening. Bij het openen van de rekening werd het contract van de klant succesvol aangemaakt (opgeslagen in de database). De reserveringsservice gaf een technische fout terug. Welke eisen zou je als systeemanalist voor het openen van juridische rekeningen presenteren aan de FP Contract en FP Reservering? Opties voor het implementeren van het integratiescenario, rekening houdend met een gedistribueerde microservices-architectuur. (Sequentiediagram "Openen van een betaalrekening voor bedrijven" met interactiestappen tussen Klant, Webapplicatie, Orkestrator voor het openen van juridische rekeningen, FP Contract en FP Reservering van de rekening)

sobes.tech AI

Antwoord van AI

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

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

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

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

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

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

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

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

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

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

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