Saltar al contenido

Ni una orden perdida

Lenguajes y backendIntermedio

Por · cofundador y Chief Executive Officer de Hábil. Así enseñamos a quienes construyen sistemas que no pueden fallar.

Empezar por la lección 0Ver las lecciones

Para quién es: quien ya usa la terminal y git, lee JSON y sabe SQL básico, y quiere aprender integración de sistemas. No hace falta saber Java ni Camel: las rutas son YAML y se aprenden aquí.

Qué vas a terminar sabiendo: lograr, con tus manos, que no se pierda ninguna orden, que todo deje rastro, que un reintento no duplique y que un destino caído no tumbe a los demás.

Lo que necesitas antes de empezar: terminal y git, leer JSON y SQL básico, y Docker con Compose. De Docker basta con docker compose up y down; lo demás viene escrito. Funciona en Linux, macOS y Windows con WSL.

El proyecto

Una tienda inventada vende, y cada orden tiene que llegar a tres sistemas que no se parecen entre sí: una API REST, un ERP en MariaDB y un socio comercial que recibe documentos EDI X12 por SFTP. Todo corre en tu máquina con Docker. Es una práctica abierta y gratuita de integración de sistemas con Apache Camel.

Las lecciones

Son 31 lecciones, de la 00 a la 30, todas en Docker Compose, más un apéndice opcional de solo lectura. Se hacen en orden: cada una parte de lo que dejó la anterior. Empieza por la 00, que levanta el ambiente.

Parte 1 — Que llegue

# Lección
00 Ambiente listo
01 Mi primera ruta corre
02 La orden llega a la API
03 Traducir la orden
04 Al ERP
05 Todo o nada
06 Armar el EDI
07 Al socio
08 El router
09 El hilo entre servicios
10 Todos los canales
11 No todo va a todos
12 Crecer en réplicas

Parte 2 — Que avance

# Lección
13 Llega el embarque
14 Un archivo, varias órdenes
15 El estado vive fuera del proceso
16 Llega la entrega
17 La entrega llegó antes que la guía

Parte 3 — Que no falle

# Lección
18 ¿Cuándo dos mensajes son el mismo?
19 El destino no contesta
20 Aceptado, rechazado o no se sabe
21 Enviado no es confirmado
22 Tirar un canal
23 Reprocesar lo que falló
24 No tumbar al destino
25 Esperar a los canales
26 Seguir una orden
27 Lo que el rastro no debe mostrar

Parte 4 — Que escale

# Lección
28 Un tópico, un grupo por integración
29 No perder al consumir
30 No perder al publicar

Apéndice opcional

La práctica termina en la 30. El apéndice lleva una integración a Kubernetes y la compara en JVM y en nativo; pide un equipo con más memoria y disco, y lo dice al principio.

# Lección
31 De laboratorio a proyecto, en Kubernetes
32 JVM contra nativo, medido

Las decisiones de diseño, con su porqué, están en decisiones/.

Lecciones

  1. Lección 0 — Ambiente listo
  2. Lección 1 — Mi primera ruta corre
  3. Lección 2 — La orden llega a la API
  4. Lección 3 — Traducir la orden
  5. Lección 4 — La orden llega al ERP
  6. Lección 5 — Todo o nada
  7. Lección 6 — Armar el EDI
  8. Lección 7 — Al socio
  9. Lección 8 — El router
  10. Lección 9 — El hilo entre servicios
  11. Lección 10 — Todos los canales
  12. Lección 11 — No todo va a todos
  13. Lección 12 — Crecer en réplicas
  14. Lección 13 — Llega el embarque
  15. Lección 14 — Un archivo, varias órdenes
  16. Lección 15 — El estado vive fuera del proceso
  17. Lección 16 — Llega la entrega
  18. Lección 17 — La entrega llegó antes que la guía
  19. Lección 18 — ¿Cuándo dos mensajes son el mismo?
  20. Lección 19 — El destino no contesta
  21. Lección 20 — Aceptado, rechazado o no se sabe
  22. Lección 21 — Enviado no es confirmado
  23. Lección 22 — Tirar un canal
  24. Lección 23 — Reprocesar lo que falló
  25. Lección 24 — No tumbar al destino
  26. Lección 25 — Esperar a los canales
  27. Lección 26 — Seguir una orden
  28. Lección 27 — Lo que el rastro no debe mostrar
  29. Lección 28 — Un tópico, un grupo por integración
  30. Lección 29 — No perder al consumir
  31. Lección 30 — No perder al publicar
  32. Lección 31 — De laboratorio a proyecto, en Kubernetes
  33. Lección 32 — JVM contra nativo, medido