py-mx / Charlas

Repositorio que concentrará las charlas de las reuniones mensuales
17 stars 2 forks source link

Construir un realtime message bus usando Redis y asyncio #11

Closed kylebebak closed 10 months ago

kylebebak commented 4 years ago

Construir un realtime message bus usando Redis y asyncio

Descripción

Si tienes un sistema con múltiples servicios, la comunicación es clave... Cómo, entonces, podemos comunicar de una forma confiable y rápido? Cómo podemos pasar mensajes entre nuestros servicios, o pasarlos directamente de cualquier servicio a nuestros web/mobile clients?

Objetivo

Una manera de pasar mensajes es usar un append-only log. Este data structure tiene varias ventajas: sus mensajes están guardados en el log, así que no se pueden perder, y están ordenados por timestamp, así que la secuencia de mensajes siempre se puede reconstruir.

Resulta que Redis ahora ofrece una versión muy completa de un append-only log, Redis Streams. Vamos a usar Redis Streams como un message bus para pasar mensajes entre servicios, y vamos a usar aio-redis para hacer un servicio que consume estos mensajes conforme vayan llegando.

Usaremos también FastAPI, un typed y async Python web framework, para mandar los mensajes al cliente por websockets.

Veremos conceptos de event loops en general, de asyncio en específico, y de cómo usar mypy para tener un code base que se documenta sólo.

Sobre mí

Me llamo Kyle Bebak, soy lead web architect en Elementary Robotics. Soy Pythonista de hueso colorado, también me la paso escribiendo aplicaciones de React con TypeScript. Me gusta andar en bici, cocinar, pasear a mi perro, etc.

Mi correo es kylebebak@gmail.com.

danvergara commented 4 years ago

Hola Kyle. Qué gustó que abriste tu issue! Qué interesante tema!!

Me comunico contigo por email. Muchas gracias.

pixelead0 commented 3 years ago

grabación de la charla disponible en: https://www.youtube.com/watch?v=8Eboxp8CEaw