Sobes.tech
Middle+

Αριθμός 4 (σχεδιασμός ολοκλήρωσης στην αρχιτεκτονική συστήματος) Είστε αναλυτής συστημάτων για το άνοιγμα λογαριασμών νομικών προσώπων. Έχει ληφθεί μια εργασία από τον επιχειρηματικό πελάτη: υλοποίηση υπηρεσίας ανοίγματος λογαριασμού. Η υπηρεσία ανοίγματος περιλαμβάνει τη δημιουργία συμβολαίου και την κράτηση λογαριασμού. Κατά το άνοιγμα του λογαριασμού, το συμβόλαιο του πελάτη δημιουργήθηκε με επιτυχία (αποθηκεύτηκε στη βάση δεδομένων). Η υπηρεσία κράτησης επέστρεψε ένα τεχνικό σφάλμα. Ποιες απαιτήσεις, ως αναλυτής συστημάτων για το άνοιγμα λογαριασμών νομικών προσώπων, θα παρουσίαζες στα FP Συμβόλαιο και FP Κράτηση; Επιλογές υλοποίησης του σεναρίου ολοκλήρωσης, λαμβάνοντας υπόψη μια κατανεμημένη αρχιτεκτονική μικροϋπηρεσιών. (Διάγραμμα ακολουθίας "Άνοιγμα τρεχούμενου λογαριασμού για επιχειρήσεις" με τα βήματα αλληλεπίδρασης μεταξύ Πελάτη, Διαδικτυακής Εφαρμογής, Ορχήστρα ανοίγματος λογαριασμών νομικών προσώπων, FP Συμβόλαιο και FP Κράτηση λογαριασμού)

sobes.tech AI

Απάντηση από AI

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

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

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

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

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

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

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

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

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

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

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