SlideShare ist ein Scribd-Unternehmen logo
1 von 22
Downloaden Sie, um offline zu lesen
La programación reactiva
se está comiendo el
mundo del desarrollo, si
aún no sabes de qué
trata, este es el espacio
para enterarte.
@juusechec
Programación
Reactiva
-
Frameworks
Java
¿Qué he hecho?
- Jorge Useche @juusechec
- Ing. Elect. UDistrital
- Líder de Desarrollo Digital en BdB
- Miembro co-iniciador QGIS Colombia
- Miembro Honorario GLUD
- Ex-Director(X2) GLUD
- Programador en todas las capas (2011-Pres.)
https://pixelcoblog.com/la-digital-dbd-una-cuenta-de-ahorro-cien-por-ciento-digital-en-5minutos/
Apasionado por la ciencia,
cultura y tecnologías
(Hardware y Software)
libres.
Contexto
Aplicación grande Antes:
- 10’s de servidores
- Segundos respuesta
- Horas de mantenimiento offline
- GB de datos
Aplicación grande Ahora:
- Móviles
- Clusters de nube
- Procesadores multi-core
- Expectativa de respuesta milisegundos
- 100% online
- https://www.reactivemanifesto.org/es
Contexto
Aplicación grande Antes:
- 10’s de servidores
- Segundos respuesta
- Horas de mantenimiento offline
- GB de datos
Aplicación grande Ahora:
- Móviles
- Clusters de nube
- Procesadores multi-core
- Expectativa de respuesta milisegundos
- 100% online
El Manifiesto de Sistemas Reactivos
Queremos sistemas Responsivos, Resilientes, Elásticos y Orientados a Mensajes.
Les llamamos “Sistemas Reactivos”.
Flexibles
Bajo
Acoplamiento
Escalables
Tolerantes a
Fallos
El Manifiesto de Sistemas Reactivos
“Es tiempo de aplicar estos principios de diseño conscientemente
desde el inicio, en vez de re-descubrirlos cada vez”.
https://www.reactivemanifesto.org/es
Glosario de Términos
...
Reactive Programming
Es un paradigma de programación asíncrona que gira alrededor de los flujos de
datos y la propagación del cambio.
“Esos programas que propagan todos los cambios que afectan los datos y los
flujos de datos a todas las partes interesadas (usuarios finales, componentes y
subpartes, otros programas relacionados de alguna manera).”
https://learning.oreilly.com/library/view/reactive-progra
mming-in/9781788473026/c840012e-86d9-4a31-9b65
-d6e37f0f0fc2.xhtml
ReactiveX (RX, ReactiveExtensions)
API que facilita el manejo de flujos de datos y eventos.
API para programación asíncrona con observables streams (flujos observables).
RxJS
Es la implementación de ReactiveX para Javascript.
RxJava
Es la implementación de ReactiveX para Java.
Project Reactor
Reactive Core es un biblioteca reactiva de cuarta generación, basada en la
especificación de Reactive Streams, para construir aplicaciones non-blocking
applications en la JVM.
Spring Reactor es el framework de programación reactiva de Spring. Los
conceptos fundamentales que el Framework soporta son las clases Flux y Mono.
Spring WebFlux
- Usa Reactor
- Reemplazo de Spring Web MVC
- Puede co-existir con Spring Web MVC
- Controladores de Spring MVC con WebClient reactivo
- Stack Web Non-blocking para manejar concurrencia con un un número
pequeño de hilos y escalar con pocos recursos de hardware
- Diseñado para ser usado en netty (y otros…)
¿Integrarlo con otras aplicaciones?
Veamos algo
de código...
Programación reactiva explicada
https://www.slideshare.net/nicolaferraro/integ
rating-applications-the-reactive-way
....
Recomendaciones:
- Sigue instruyéndote, el mejor maestro es la experiencia, somos artesanos
del software
Todas estas ideas hay
que estudiarlas y
utilizarlas cuando
tenga sentido
We are hiring!
@juusechec

Weitere ähnliche Inhalte

Was ist angesagt?

Innoslate's Ontology - LML, SysML, DoDAF, and more
Innoslate's Ontology - LML, SysML, DoDAF, and moreInnoslate's Ontology - LML, SysML, DoDAF, and more
Innoslate's Ontology - LML, SysML, DoDAF, and moreElizabeth Steiner
 
Lessons Learned Using arc42 in a Real DevOps Team
Lessons Learned Using arc42 in a Real DevOps TeamLessons Learned Using arc42 in a Real DevOps Team
Lessons Learned Using arc42 in a Real DevOps TeamJohannes Dienst
 
Polyglot Persistence vs Multi-Model Databases
Polyglot Persistence vs Multi-Model DatabasesPolyglot Persistence vs Multi-Model Databases
Polyglot Persistence vs Multi-Model DatabasesLuca Garulli
 
AnzoGraph DB: Driving AI and Machine Insights with Knowledge Graphs in a Conn...
AnzoGraph DB: Driving AI and Machine Insights with Knowledge Graphs in a Conn...AnzoGraph DB: Driving AI and Machine Insights with Knowledge Graphs in a Conn...
AnzoGraph DB: Driving AI and Machine Insights with Knowledge Graphs in a Conn...Cambridge Semantics
 
Introduction to Knowledge Graphs: Data Summit 2020
Introduction to Knowledge Graphs: Data Summit 2020Introduction to Knowledge Graphs: Data Summit 2020
Introduction to Knowledge Graphs: Data Summit 2020Enterprise Knowledge
 
Machine Learning Data Lineage with MLflow and Delta Lake
Machine Learning Data Lineage with MLflow and Delta LakeMachine Learning Data Lineage with MLflow and Delta Lake
Machine Learning Data Lineage with MLflow and Delta LakeDatabricks
 
Portlet Specification 3.0 Is Here!
Portlet Specification 3.0 Is Here! Portlet Specification 3.0 Is Here!
Portlet Specification 3.0 Is Here! Dev_Events
 
Inner Source Webinar Series: Open Source Community Development Methods
Inner Source Webinar Series: Open Source Community Development MethodsInner Source Webinar Series: Open Source Community Development Methods
Inner Source Webinar Series: Open Source Community Development MethodsBlack Duck by Synopsys
 
Simplifying complexity at GitLab (2023-07-31 @ OutSystems Product Design Unwr...
Simplifying complexity at GitLab (2023-07-31 @ OutSystems Product Design Unwr...Simplifying complexity at GitLab (2023-07-31 @ OutSystems Product Design Unwr...
Simplifying complexity at GitLab (2023-07-31 @ OutSystems Product Design Unwr...Pedro Moreira da Silva
 
Dagster - DataOps and MLOps for Machine Learning Engineers.pdf
Dagster - DataOps and MLOps for Machine Learning Engineers.pdfDagster - DataOps and MLOps for Machine Learning Engineers.pdf
Dagster - DataOps and MLOps for Machine Learning Engineers.pdfHong Ong
 
The Revolution of Digital Marketing in the Artificial Intelligence era
The Revolution of Digital Marketing in the Artificial Intelligence eraThe Revolution of Digital Marketing in the Artificial Intelligence era
The Revolution of Digital Marketing in the Artificial Intelligence eraMohamed Hanafy
 
Web Analytics Maturity Model
Web Analytics Maturity ModelWeb Analytics Maturity Model
Web Analytics Maturity ModelStéphane Hamel
 
The Graph Database Universe: Neo4j Overview
The Graph Database Universe: Neo4j OverviewThe Graph Database Universe: Neo4j Overview
The Graph Database Universe: Neo4j OverviewNeo4j
 
Knowledge Engineering
Knowledge EngineeringKnowledge Engineering
Knowledge EngineeringMegha Sharma
 
GraphFrames: DataFrame-based graphs for Apache® Spark™
GraphFrames: DataFrame-based graphs for Apache® Spark™GraphFrames: DataFrame-based graphs for Apache® Spark™
GraphFrames: DataFrame-based graphs for Apache® Spark™Databricks
 
A Practical Guide to Domain Driven Design: Presentation Slides
A Practical Guide to Domain Driven Design: Presentation SlidesA Practical Guide to Domain Driven Design: Presentation Slides
A Practical Guide to Domain Driven Design: Presentation Slidesthinkddd
 

Was ist angesagt? (20)

Webscripts
WebscriptsWebscripts
Webscripts
 
Innoslate's Ontology - LML, SysML, DoDAF, and more
Innoslate's Ontology - LML, SysML, DoDAF, and moreInnoslate's Ontology - LML, SysML, DoDAF, and more
Innoslate's Ontology - LML, SysML, DoDAF, and more
 
Lessons Learned Using arc42 in a Real DevOps Team
Lessons Learned Using arc42 in a Real DevOps TeamLessons Learned Using arc42 in a Real DevOps Team
Lessons Learned Using arc42 in a Real DevOps Team
 
Polyglot Persistence vs Multi-Model Databases
Polyglot Persistence vs Multi-Model DatabasesPolyglot Persistence vs Multi-Model Databases
Polyglot Persistence vs Multi-Model Databases
 
AnzoGraph DB: Driving AI and Machine Insights with Knowledge Graphs in a Conn...
AnzoGraph DB: Driving AI and Machine Insights with Knowledge Graphs in a Conn...AnzoGraph DB: Driving AI and Machine Insights with Knowledge Graphs in a Conn...
AnzoGraph DB: Driving AI and Machine Insights with Knowledge Graphs in a Conn...
 
Introduction to Knowledge Graphs: Data Summit 2020
Introduction to Knowledge Graphs: Data Summit 2020Introduction to Knowledge Graphs: Data Summit 2020
Introduction to Knowledge Graphs: Data Summit 2020
 
Machine Learning Data Lineage with MLflow and Delta Lake
Machine Learning Data Lineage with MLflow and Delta LakeMachine Learning Data Lineage with MLflow and Delta Lake
Machine Learning Data Lineage with MLflow and Delta Lake
 
Portlet Specification 3.0 Is Here!
Portlet Specification 3.0 Is Here! Portlet Specification 3.0 Is Here!
Portlet Specification 3.0 Is Here!
 
Inner Source Webinar Series: Open Source Community Development Methods
Inner Source Webinar Series: Open Source Community Development MethodsInner Source Webinar Series: Open Source Community Development Methods
Inner Source Webinar Series: Open Source Community Development Methods
 
Simplifying complexity at GitLab (2023-07-31 @ OutSystems Product Design Unwr...
Simplifying complexity at GitLab (2023-07-31 @ OutSystems Product Design Unwr...Simplifying complexity at GitLab (2023-07-31 @ OutSystems Product Design Unwr...
Simplifying complexity at GitLab (2023-07-31 @ OutSystems Product Design Unwr...
 
Dagster - DataOps and MLOps for Machine Learning Engineers.pdf
Dagster - DataOps and MLOps for Machine Learning Engineers.pdfDagster - DataOps and MLOps for Machine Learning Engineers.pdf
Dagster - DataOps and MLOps for Machine Learning Engineers.pdf
 
System integration
System integrationSystem integration
System integration
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
The Revolution of Digital Marketing in the Artificial Intelligence era
The Revolution of Digital Marketing in the Artificial Intelligence eraThe Revolution of Digital Marketing in the Artificial Intelligence era
The Revolution of Digital Marketing in the Artificial Intelligence era
 
Web Analytics Maturity Model
Web Analytics Maturity ModelWeb Analytics Maturity Model
Web Analytics Maturity Model
 
Scrum + bdd + ddd
Scrum + bdd + dddScrum + bdd + ddd
Scrum + bdd + ddd
 
The Graph Database Universe: Neo4j Overview
The Graph Database Universe: Neo4j OverviewThe Graph Database Universe: Neo4j Overview
The Graph Database Universe: Neo4j Overview
 
Knowledge Engineering
Knowledge EngineeringKnowledge Engineering
Knowledge Engineering
 
GraphFrames: DataFrame-based graphs for Apache® Spark™
GraphFrames: DataFrame-based graphs for Apache® Spark™GraphFrames: DataFrame-based graphs for Apache® Spark™
GraphFrames: DataFrame-based graphs for Apache® Spark™
 
A Practical Guide to Domain Driven Design: Presentation Slides
A Practical Guide to Domain Driven Design: Presentation SlidesA Practical Guide to Domain Driven Design: Presentation Slides
A Practical Guide to Domain Driven Design: Presentation Slides
 

Ähnlich wie Programación reactiva con java

Aprendiendo a Programas en 4 horas JavaScript
Aprendiendo a Programas en 4 horas JavaScriptAprendiendo a Programas en 4 horas JavaScript
Aprendiendo a Programas en 4 horas JavaScriptKarsarmi
 
SGDB y tecnologías usadas por aplicaciones 2.0
SGDB y tecnologías usadas por aplicaciones 2.0SGDB y tecnologías usadas por aplicaciones 2.0
SGDB y tecnologías usadas por aplicaciones 2.0Anderson Almidon
 
Seminario Spring Roo. Monitorización con Spring Insight
Seminario Spring Roo. Monitorización con Spring InsightSeminario Spring Roo. Monitorización con Spring Insight
Seminario Spring Roo. Monitorización con Spring InsightParadigma Digital
 
Integrando Machine Learning y Microservicios
Integrando Machine Learning y MicroserviciosIntegrando Machine Learning y Microservicios
Integrando Machine Learning y MicroserviciosRafa Hidalgo
 
Introdución a aplicaciones web en java
Introdución a aplicaciones web en java Introdución a aplicaciones web en java
Introdución a aplicaciones web en java Rodrigo Zottola Pareja
 
63997661 tecnologia-cliente-servidor-con-java
63997661 tecnologia-cliente-servidor-con-java63997661 tecnologia-cliente-servidor-con-java
63997661 tecnologia-cliente-servidor-con-javaGilberto Garcia Zavaleta
 
Gwt seminario java_hispano_manolocarrasco
Gwt seminario java_hispano_manolocarrascoGwt seminario java_hispano_manolocarrasco
Gwt seminario java_hispano_manolocarrascoManuel Carrasco Moñino
 
Google Web Toolkit (GWT) en entornos empresariales
Google Web Toolkit (GWT) en entornos empresarialesGoogle Web Toolkit (GWT) en entornos empresariales
Google Web Toolkit (GWT) en entornos empresarialesTecsisa
 
herramientas tecnológicas
herramientas tecnológicasherramientas tecnológicas
herramientas tecnológicasGerardo Linares
 
Cuadro comparativo de SMBD
Cuadro comparativo de SMBD Cuadro comparativo de SMBD
Cuadro comparativo de SMBD Jazmin Glez.
 
Israel tecnologias para desarrollo-web
Israel tecnologias para desarrollo-webIsrael tecnologias para desarrollo-web
Israel tecnologias para desarrollo-webimei_02
 
Reingsys framework v04_completo_new
Reingsys framework v04_completo_newReingsys framework v04_completo_new
Reingsys framework v04_completo_newReingsys
 
Desarrollo de Aplicaciones Web II - Sesión 01 - Introducción
Desarrollo de Aplicaciones Web II - Sesión 01 - IntroducciónDesarrollo de Aplicaciones Web II - Sesión 01 - Introducción
Desarrollo de Aplicaciones Web II - Sesión 01 - IntroducciónDidier Granados
 

Ähnlich wie Programación reactiva con java (20)

Temas Relacionados Web 2
Temas Relacionados Web 2Temas Relacionados Web 2
Temas Relacionados Web 2
 
Aprendiendo a Programas en 4 horas JavaScript
Aprendiendo a Programas en 4 horas JavaScriptAprendiendo a Programas en 4 horas JavaScript
Aprendiendo a Programas en 4 horas JavaScript
 
SGDB y tecnologías usadas por aplicaciones 2.0
SGDB y tecnologías usadas por aplicaciones 2.0SGDB y tecnologías usadas por aplicaciones 2.0
SGDB y tecnologías usadas por aplicaciones 2.0
 
Seminario Spring Roo. Monitorización con Spring Insight
Seminario Spring Roo. Monitorización con Spring InsightSeminario Spring Roo. Monitorización con Spring Insight
Seminario Spring Roo. Monitorización con Spring Insight
 
Integrando Machine Learning y Microservicios
Integrando Machine Learning y MicroserviciosIntegrando Machine Learning y Microservicios
Integrando Machine Learning y Microservicios
 
Introdución a aplicaciones web en java
Introdución a aplicaciones web en java Introdución a aplicaciones web en java
Introdución a aplicaciones web en java
 
63997661 tecnologia-cliente-servidor-con-java
63997661 tecnologia-cliente-servidor-con-java63997661 tecnologia-cliente-servidor-con-java
63997661 tecnologia-cliente-servidor-con-java
 
Cruz uliseslarragaramirezcv
Cruz uliseslarragaramirezcvCruz uliseslarragaramirezcv
Cruz uliseslarragaramirezcv
 
PostgreSQL
PostgreSQLPostgreSQL
PostgreSQL
 
Sercicios web
Sercicios webSercicios web
Sercicios web
 
Meteor
MeteorMeteor
Meteor
 
Gwt seminario java_hispano_manolocarrasco
Gwt seminario java_hispano_manolocarrascoGwt seminario java_hispano_manolocarrasco
Gwt seminario java_hispano_manolocarrasco
 
Google Web Toolkit (GWT) en entornos empresariales
Google Web Toolkit (GWT) en entornos empresarialesGoogle Web Toolkit (GWT) en entornos empresariales
Google Web Toolkit (GWT) en entornos empresariales
 
herramientas tecnológicas
herramientas tecnológicasherramientas tecnológicas
herramientas tecnológicas
 
Frameworks J2EE
Frameworks J2EEFrameworks J2EE
Frameworks J2EE
 
MEAN ¿otro buzzword?
MEAN ¿otro buzzword?MEAN ¿otro buzzword?
MEAN ¿otro buzzword?
 
Cuadro comparativo de SMBD
Cuadro comparativo de SMBD Cuadro comparativo de SMBD
Cuadro comparativo de SMBD
 
Israel tecnologias para desarrollo-web
Israel tecnologias para desarrollo-webIsrael tecnologias para desarrollo-web
Israel tecnologias para desarrollo-web
 
Reingsys framework v04_completo_new
Reingsys framework v04_completo_newReingsys framework v04_completo_new
Reingsys framework v04_completo_new
 
Desarrollo de Aplicaciones Web II - Sesión 01 - Introducción
Desarrollo de Aplicaciones Web II - Sesión 01 - IntroducciónDesarrollo de Aplicaciones Web II - Sesión 01 - Introducción
Desarrollo de Aplicaciones Web II - Sesión 01 - Introducción
 

Mehr von Jorge Ulises Useche Cuellar

Mehr von Jorge Ulises Useche Cuellar (8)

Estatutos GLUD 2011
Estatutos GLUD 2011Estatutos GLUD 2011
Estatutos GLUD 2011
 
Pruebas al Software
Pruebas al SoftwarePruebas al Software
Pruebas al Software
 
Introducción al software libre y open source
Introducción al software libre y open sourceIntroducción al software libre y open source
Introducción al software libre y open source
 
Presentación react con redux SLUD 2017
Presentación react con redux SLUD 2017Presentación react con redux SLUD 2017
Presentación react con redux SLUD 2017
 
Web pack para la construcción de un proyecto javascript.
Web pack para la construcción de un proyecto javascript.Web pack para la construcción de un proyecto javascript.
Web pack para la construcción de un proyecto javascript.
 
Estatutos GLUD
Estatutos GLUDEstatutos GLUD
Estatutos GLUD
 
Presentación Emisora en Línea con Tecnologías Libres
Presentación Emisora en Línea con Tecnologías LibresPresentación Emisora en Línea con Tecnologías Libres
Presentación Emisora en Línea con Tecnologías Libres
 
Formatos y estándares libres
Formatos y estándares libresFormatos y estándares libres
Formatos y estándares libres
 

Kürzlich hochgeladen

EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 

Kürzlich hochgeladen (13)

EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 

Programación reactiva con java

  • 1. La programación reactiva se está comiendo el mundo del desarrollo, si aún no sabes de qué trata, este es el espacio para enterarte. @juusechec
  • 3. ¿Qué he hecho? - Jorge Useche @juusechec - Ing. Elect. UDistrital - Líder de Desarrollo Digital en BdB - Miembro co-iniciador QGIS Colombia - Miembro Honorario GLUD - Ex-Director(X2) GLUD - Programador en todas las capas (2011-Pres.) https://pixelcoblog.com/la-digital-dbd-una-cuenta-de-ahorro-cien-por-ciento-digital-en-5minutos/
  • 4. Apasionado por la ciencia, cultura y tecnologías (Hardware y Software) libres.
  • 5. Contexto Aplicación grande Antes: - 10’s de servidores - Segundos respuesta - Horas de mantenimiento offline - GB de datos Aplicación grande Ahora: - Móviles - Clusters de nube - Procesadores multi-core - Expectativa de respuesta milisegundos - 100% online - https://www.reactivemanifesto.org/es
  • 6. Contexto Aplicación grande Antes: - 10’s de servidores - Segundos respuesta - Horas de mantenimiento offline - GB de datos Aplicación grande Ahora: - Móviles - Clusters de nube - Procesadores multi-core - Expectativa de respuesta milisegundos - 100% online
  • 7. El Manifiesto de Sistemas Reactivos Queremos sistemas Responsivos, Resilientes, Elásticos y Orientados a Mensajes. Les llamamos “Sistemas Reactivos”. Flexibles Bajo Acoplamiento Escalables Tolerantes a Fallos
  • 8. El Manifiesto de Sistemas Reactivos “Es tiempo de aplicar estos principios de diseño conscientemente desde el inicio, en vez de re-descubrirlos cada vez”. https://www.reactivemanifesto.org/es
  • 10. Reactive Programming Es un paradigma de programación asíncrona que gira alrededor de los flujos de datos y la propagación del cambio. “Esos programas que propagan todos los cambios que afectan los datos y los flujos de datos a todas las partes interesadas (usuarios finales, componentes y subpartes, otros programas relacionados de alguna manera).” https://learning.oreilly.com/library/view/reactive-progra mming-in/9781788473026/c840012e-86d9-4a31-9b65 -d6e37f0f0fc2.xhtml
  • 11. ReactiveX (RX, ReactiveExtensions) API que facilita el manejo de flujos de datos y eventos. API para programación asíncrona con observables streams (flujos observables).
  • 12. RxJS Es la implementación de ReactiveX para Javascript.
  • 13. RxJava Es la implementación de ReactiveX para Java.
  • 14. Project Reactor Reactive Core es un biblioteca reactiva de cuarta generación, basada en la especificación de Reactive Streams, para construir aplicaciones non-blocking applications en la JVM. Spring Reactor es el framework de programación reactiva de Spring. Los conceptos fundamentales que el Framework soporta son las clases Flux y Mono.
  • 15. Spring WebFlux - Usa Reactor - Reemplazo de Spring Web MVC - Puede co-existir con Spring Web MVC - Controladores de Spring MVC con WebClient reactivo - Stack Web Non-blocking para manejar concurrencia con un un número pequeño de hilos y escalar con pocos recursos de hardware - Diseñado para ser usado en netty (y otros…)
  • 16. ¿Integrarlo con otras aplicaciones?
  • 17.
  • 20. .... Recomendaciones: - Sigue instruyéndote, el mejor maestro es la experiencia, somos artesanos del software
  • 21. Todas estas ideas hay que estudiarlas y utilizarlas cuando tenga sentido