Blog de notas sobre Software, Ingeniería y Tecnología
Maxim Fateev CTO/Cofounder @ Temporal.io
Linkedin: https://www.linkedin.com/in/fateev
Representación del sistema solar, trajectoria de los planetas:

Nosotros trabajamos con abstracciones, pero hay niveles de abstracción. El problema aparece cuando se modelas las abstracciones equivocadas o de manera equivocada.




Un sistema monolítico es transaccional y las transacciones no permiten "fallas parciales".
Pero cuando el monolito es muy grande, la estrategia es separarlo en microservicios. Y cuando los pasos de un determinado proceso está separado y toma más tiempo completarlo, las transacciones no sirven. Entonces apare: Event-Driven.

Fuente: https://pivovarit.github.io/talks/embracing-microservices/
Ref. https://en.wikipedia.org/wiki/Event-driven_architecture

Eventos => son variables globales en sistemas distribuidos. ATENCION.

=> ejecución que no crashea por causas de fallas a nivel sistema.
La principal idea es: recuperar el estado de una transacción distribuida, pese a la falla de una parte o todo el sistema.

Paso #01. Instalar el CLI de temporal.io para comenzar a desarrollar:
| Link: [Set up a local development environment for Temporal and Java | Learn Temporal](https://learn.temporal.io/getting_started/java/dev_environment/) |
Luego de bajar el CLI, se puede ejecutar:
$ temporal server start-dev
CLI 1.0.0 (Server 1.24.2, UI 2.28.0)
Server: localhost:7233
UI: http://localhost:8233
Metrics: http://localhost:63504/metrics
Link: Workflows default

git clone https://github.com/temporalio/money-transfer-project-java
Básicamente la aplicación es lo siguiente:

1) Iniciar: TransferApp 2) Ver en la UI el workflow en progreso 3) Iniciar un worker: MoneyTransferWorker (hace el Withdraw y el Deposit ) 4)
Web: https://temporal.io Github original: https://github.com/temporalio/money-transfer-project-java