javamexico / propuestas-meetup

Aquí puedes proponer tu charla, abriendo un issue con el título y descripción de la misma, para que los demás podamos votar.
Creative Commons Zero v1.0 Universal
17 stars 0 forks source link

Creación de sistemas flexibles con Vert.x #76

Closed rodrigoSaladoAnaya closed 3 years ago

rodrigoSaladoAnaya commented 4 years ago

Descripción de la propuesta

Creación del sistema: En la reunión, mostraré cómo construir un sistema monolítico en apariencia, pero con propiedades flexibles, esto quiere decir que vamos a tener corriendo un solo proceso de la JVM soportando todo el sistema como usualmente sucede en un monolito, con la ventaja de poder evolucionar el sistema sin tener que matar dicho proceso; que en la JVM es lo más común.

Base de código: Adicional a eso, veremos cómo construir una base de código legibles en plataformas asíncronas, como es el caso de Vert.x, expondré una alternativa para evitar el callback-hell(pirámide de Doom).

Pruebas: También veremos cómo probar sistemas asíncronos y modulares.

Limitaciones: En este sentido Vert.x no es perfecto, les platicare un par de opiniones sobre qué pienso de: sus limitaciones, áreas de oportunidad y excesos.

Intención

La intención de la charla es abrir el dialogo a formas no tan populares en la comunidad de la JVM para creación de sistemas monolíticos.

  1. En los casos más populares de construcción de sistemas en la JVM, Spring es el corazón de una aplicación y esto tiene sentido, ya que facilita la descripción de qué implementación usar al levantar un sistema, en la charla abordaremos otra opción para instalar implementaciones.

  2. El ciclo de vida que más he visto en la actualidad para un sistema monolítico, y seguro ustedes también, es: diseñar, levantar, matar, actualizar, matar, matar actualizar, levantar... y el mantra sigue. Otros escenarios más sofisticados en apariencia usan balanceo de monolitos con Docker, nginx, etc, en la charla abordaremos una opción para manejar balanceo de implementaciones de componentes sin salir de su JVM.

  3. Hacer preguntas a la comunidad y escuchar sus opiniones sobre:

    • ¿Si consideran que la JVM es adecuada para el tipo de sistema que estoy exponiendo?
    • ¿La necesidad de un sistema v/s un lenguaje?
    • ¿Si esté tipo de sistemas en la comunidad de la JVM fueran más populares, considerarían no usar Docker o similares; hablando de monolitos?
rodrigoSaladoAnaya commented 3 years ago

Ya subí el código de la charla en https://github.com/rodrigoSaladoAnaya/jvmmx_issue_76

Si les intereso la charla puede que les interese este par de artículos que están muy bien explicados: https://medium.com/@alexey.soshin/understanding-vert-x-event-loop-46373115fb3e https://medium.com/@alexey.soshin/understanding-vert-x-event-bus-c31759757ce8

También les comparto unos videos que pueden servir como complemento a la charla: A Playful Introduction to Rx by Erik Meijer: https://www.youtube.com/watch?v=WKore-AkisY Scott Wlaschin - Railway Oriented Programming — error handling in functional languages: https://vimeo.com/97344498 Hewitt, Meijer and Szyperski, The Actor Model: https://www.youtube.com/watch?v=7erJ1DV_Tlo

Saludos a todos.

benek commented 3 years ago

Link a la charla, impartida el 18 de septiembre de 2020: https://youtu.be/1C4ErnC2G_I