Quiero comenzar este artículo, agradeciéndole al equipo que ha estado día a día conmigo para preparar el EDcamp Bogotá 2023, un evento que no es fácil. Cuando ellas se ofrecieron a ayudar, sentí un gran alivio y lo único que les di fueron tareas específicas: tú me ayudas a buscar el hotel, otra persona a buscar restaurante y otra persona el restaurante. Yo me quité esa responsabilidad y ellas solo me notificaron cuando lo terminaron.
Y sin darte cuenta, ya te comencé a hablar sobre arquitectura orientada a eventos (AOE).
¿Qué es la arquitectura orientada a eventos?
Imagínate que vas a un restaurante de comida rápida y, al llegar a la caja, le dices al cajero que quieres una hamburguesa con tales especificaciones. El cajero solo registra la compra y le envía un mensaje a la cocina, quien recibe la orden y efectúa la acción. Cuando está lista, la cocina le envía un mensaje al mesero para que despache la hamburguesa. El mesero, por su parte, busca al cliente y le informa que su pedido ya está listo y se lo entrega.
Esa es la arquitectura orientada a eventos. Se trata de diferentes componentes que reaccionan a diferentes mensajes. Estos mensajes pueden ser procesados por uno o por varios componentes, a quienes llamaremos workers.
Estos workers son como los microservicios, pero corren en segundo plano. Es decir, un worker es un servicio que se dedica a hacer una tarea bien específica de manera correcta.
¿Cuáles servicios de cola puedes usar?
Existen muchísimos servicios para que comiences a utilizar la arquitectura orientada a eventos. Entre ellos, puedes elegir:
- 1- AWS: Tiene un servicio de colas de SQS (envía mensajes a todos los que estén conectados) y SNS (envía un solo mensaje al worker que esté desocupado).
- 2- Google Cloud: Tiene pub/sub. Es lo mismo que AWS.
- 3- redis: En EDteam usamos redis. Es supersencillo y dinámico, y no dependes de AWS o de Google Cloud y puedes moverte a cualquier nube.
Sin embargo, también existen toras opciones de software libre, que también sirve como procesadores. Reciben mensajes y los configuran para que: 1. O le envía a todos los workers que estén conectados o le envia al worker que esté desocupado. Esas opciones son: kafka, RabbitMQ y OMQ.
¿Cuánto utilizar la AOE?
- 1- Para escalabilidad.
- 2- Integración de sistemas.
- 3- Automatización de procesos de negocio.
¿Cuáles son las desventajas de la AOE?
- 1- Latencia
- 2- Complejidad de desarrollo
En resumen, la arquitectura orientada a eventos (AOE) simplemente son herramientas que responden a mensajes. Y cada una de esas herramientas (workers) realizan su trabajo correctamente. De esta forma, pueden escalar su proyecto de forma interesante.
Y si quieres ampliar esta explicación, no te pierdas el video completo de la charla de Alexys Lozada, CTO de EDteam, en el EDcamp Bogotá 2023.
Y si no lo sabías, #LoAprendisteEnEDteam.