Middle+
Tarea nº 4 (diseño de integración en la arquitectura del sistema) Eres un analista de sistemas de la apertura de cuentas jurídicas. Se ha recibido una tarea del cliente empresarial: implementar un servicio de apertura de cuentas. El servicio de apertura incluye la creación de un contrato y la reserva de la cuenta. Al abrir la cuenta, se creó con éxito el contrato del cliente (guardado en la base de datos). El servicio de reserva devolvió un error técnico. ¿Qué requisitos, como analista de la apertura de cuentas jurídicas, presentarías a los FP Contrato y FP Reserva? Opciones de implementación del escenario de integración, considerando una arquitectura de microservicios distribuida. (Diagrama de secuencia "Apertura de cuenta corriente para empresas" con pasos de interacción entre el Cliente, la Aplicación Web, el Orquestador de la apertura de cuentas jurídicas, el FP Contrato y el FP Reserva de cuenta)
sobes.tech AI
Respuesta de la IA
В описанной ситуации, где при открытии счета договор создаётся, а резервирование счета завершается ошибкой, необходимо обеспечить согласованность данных и корректную обработку ошибок в распределённой микросервисной архитектуре.
Требования к ФП Договор:
- Поддержка транзакционной целостности или компенсационных операций (например, отмена созданного договора при ошибке резервирования).
- Возможность отката изменений (удаление или аннулирование договора) по запросу оркестратора.
- Идемпотентность операций создания договора, чтобы избежать дублирования при повторных вызовах.
Требования к ФП Резервирование:
- Чёткая обработка ошибок с информативными кодами и сообщениями.
- Возможность повторного вызова операции резервирования без негативных последствий (идемпотентность).
Варианты реализации интеграционного сценария:
-
Оркестрация с компенсационными транзакциями (SAGA):
- Оркестратор вызывает создание договора.
- При успешном создании договора вызывает резервирование счета.
- Если резервирование не удалось, оркестратор инициирует компенсационную операцию — отмену договора.
-
Использование очередей и событий (Event-driven):
- Создание договора и резервирование счета выполняются как отдельные события.
- При ошибке резервирования публикуется событие отмены договора.
-
Идемпотентные операции и повторные попытки:
- Оркестратор повторяет вызов резервирования с контролем состояния.
- При длительной ошибке инициируется компенсация.
Диаграмма последовательности должна отражать эти шаги, показывая вызовы от клиента к веб-приложению, далее к оркестратору, который последовательно взаимодействует с ФП Договор и ФП Резервирование, обрабатывая ошибки и выполняя компенсации.