Esta aplicación de muestra muestra un sistema simple de cumplimiento de pedidos, descompuesto en múltiples componentes independientes (como microservicios ).
El repositorio contiene código para múltiples alternativas de implementación para permitir que una amplia audiencia comprenda el código y compare alternativas. La siguiente tabla enumera estas alternativas.
El ejemplo respeta los aprendizajes del diseño basado en dominios (DDD) , la arquitectura basada en eventos (EDA) y los microservicios (μS) y está diseñado para brindarle acceso práctico a estos temas.
Nota: El código fue escrito para ser explicado. Por lo tanto, prefiero el código simplificado o copiar y pegar en lugar del código listo para producción con soluciones genéricas. ¡No considere las mejores prácticas de estilo de codificación! Está escrito específicamente para ser un código fácilmente explicable .
Puede encontrar más información sobre los conceptos en el libro Automatización práctica de procesos con O'Reilly.
El comercio minorista fluido simula un sistema de cumplimiento de pedidos muy sencillo:
La elección más fundamental es seleccionar el mecanismo de comunicación :
Después del mecanismo de comunicación, la siguiente opción es el motor de flujo de trabajo :
y el lenguaje de programación :
El comercio minorista fluido simula un sistema de cumplimiento de pedidos muy sencillo. La lógica empresarial se separa en los servicios que se muestran arriba (que se muestran como un mapa de contexto).
Algunos servicios son de larga duración , por ejemplo: el servicio de pago solicita a los clientes que actualicen las tarjetas de crédito vencidas. Se utiliza un motor de flujo de trabajo para persistir y controlar estas interacciones de larga duración.
Tenga en cuenta que la máquina de estado ( o motor de flujo de trabajo en este caso ) es una biblioteca utilizada dentro de un servicio. Si diferentes servicios necesitan un motor de flujo de trabajo, pueden ejecutar el motor que quieran. De esta manera, es una decisión del equipo autónomo si quieren utilizar un marco y cuál: