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