Introducción al curso

1

Introducción al curso de Profesional de Arquitectura de Software

Atributos de calidad

2

Definición

3

Atributos: Idoneidad funcional

4

Atributos: Eficiencia de ejecución

5

Atributos: Compatibilidad

6

Atributos: Usabilidad

7

Atributos: Confiabilidad

8

Atributos: Seguridad

9

Atributos: Mantenibilidad

10

Atributos: Portabilidad

11

Tensiones entre atributos

12

Analizando PlatziServicios

Patrones de arquitectura

13

Patrones monolíticos vs distribuidos

14

Patrones: Modelo Vista Controlador

15

Patrones: Capas

16

Patrones: Orientado a eventos / Provisión de eventos.

17

Patrones: Microkernel - Plug-ins

18

Patrones: Comparte-nada

19

Patrones: Microservicios

20

Patrones: CQRS

21

Patrones: Hexagonal - Puertos y adaptadores

22

Patrones: Diseño orientado al dominio

23

Combinando patrones de arquitectura

24

Analizando nuevamente PlatziServicios

Diseño de una arquitectura

25

Pararse en hombros de gigantes

26

Herramientas y partes de un diseño: Tipos de conectores

27

Conectores: Llamado asincrónico / sincrónico. Modelo Cliente servidor.

28

Conectores: Enrutador, difusión

29

Conectores: Pizarra, repositorio, colas, modelo PUBSUB

30

Escenarios y tácticas

31

Escenarios: Disponibilidad, detección, reparación

32

Escenarios: Reintroducción y prevención

33

Escenarios: Mantenibilidad

34

Escenarios: Prevenir efectos dominó y diferir enlace

35

Escenarios: Eficiencia de ejecución

36

Escenarios: Seguridad

37

Escenarios: Capacidad de prueba

38

Escenarios: Usabilidad

39

Validar las decisiones de diseño: Arquitectura en evolución

40

Último análisis a PlatziServicios

Modelado y documentación de arquitectura

41

Cómo comunicar la arquitectura: Vistas y Puntos de vista

42

Documentación vs implementación

43

Conclusiones del curso

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Aprende todo un fin de semana sin pagar una suscripción 🔥

Aprende todo un fin de semana sin pagar una suscripción 🔥

Regístrate

Comienza en:

1D
0H
23M
34S

Patrones: Orientado a eventos / Provisión de eventos.

16/43
Recursos

Aportes 15

Preguntas 2

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

o inicia sesión.

Apuntes:

Orientado a eventos / Provisión de eventos

Orientado a eventos. Trata sobre cómo conectar componentes a través de eventos. Cada componente publica eventos a un bus de eventos común y los componentes interesados a estos eventos pueden estar suscritos y luego responder al respecto. No hay otra forma de comunicación, el bus de eventos pasa ser el método principal de comunicación entre componentes. Algo complejo es saber si una acción que hicimos tuvo el resultado que esperábamos, en general suelen ser eventualmente consistentes, lo que significa que cuando hacemos una escritura el sistema no nos garantiza que va a estar disponible hasta que ese evento no se distribuya en todas las partes que lo necesita.

Provisión de eventos. En vez de que nuestra aplicación tenga el estado actual del sitio, podríamos tener solamente guardados los eventos que nos importan.

Patrón de arquitectura Orientado a Eventos
Conecta componentes a través de eventos.
Cada componente publica eventos a un bus de eventos común y los componentes interesados en estos eventos pueden estar subscritos y luego responder al respecto.
En esta arquitectura, el bus de eventos pasa a ser el método principal de comunicación entre componentes.

###Patrones: Orientado a eventos
Trata de conectar componentes a través de eventos. Cada componente puede estar subscrito (conectado) a un Bus de Eventos y el componente que este interesado en dicho evento puede responder. El bus de eventos pasa a ser el método principal de componentes.


Es difícil de testear porque hay que conectar e bus de eventos con los diferentes módulos, esto hace que sea mas complejo las pruebas end to end.


<h4>Provisión de eventos.</h4>

Se leen de forma secuencial para conocer el estado actual y a través del log de eventos, solo guarda los eventos que importan.

Caso especifico de uso de eventos.
Arquitectura Provisión de eventos.
Consiste en que la App tenga el estado actual del sitio, solo guardar los eventos que nos importan.
Se leen en forma secuencial para saber el estado actual.

Con esta arquitectura se puede saber el estado en cualquier momento de su ciclo de vida

Siempre se debe estudiar el caso de uso y evaluar si es el adecuado para el desarrollo de mi solución, ya que cada patron tiene sus pros y contras

En el caso del patron orientado a eventos:
Pro: permite desligar un sistema distribuido mediante el bus, logrando asi mayor capacidad a la hora de escalar mi sistema distribuido.
Contra: Mayor dificultad a la hora de hacer pruebas end to end.
Contra: El mismo bus de eventos podria ser un punto de falla. Se debe contar con buenas capacidades para soportar el nivel de transaccionalidad del bus de eventos.

Event Sourcing by Marting Fowler: https://martinfowler.com/eaaDev/EventSourcing.html

Blockchain! Eso sería event sourcing, creo.

Orientado a eventos / Provisión de eventos
Orientado a eventos. Trata sobre cómo conectar componentes a través de eventos. Cada componente publica eventos a un bus de eventos común y los componentes interesados a estos eventos pueden estar suscritos y luego responder al respecto. No hay otra forma de comunicación, el bus de eventos pasa ser el método principal de comunicación entre componentes. Algo complejo es saber si una acción que hicimos tuvo el resultado que esperábamos, en general suelen ser eventualmente consistentes, lo que significa que cuando hacemos una escritura el sistema no nos garantiza que va a estar disponible hasta que ese evento no se distribuya en todas las partes que lo necesita.
Provisión de eventos. En vez de que nuestra aplicación tenga el estado actual del sitio, podríamos tener solamente guardados los eventos que nos importan.

Este patrón trata principalmente con eventos y tiene 4 componentes principales; fuente de evento , escucha de evento , canal y bus de evento . Las fuentes publican mensajes en canales particulares en un bus de eventos. Los oyentes se suscriben a canales particulares. Los oyentes son notificados de los mensajes que se publican en un canal al que se han suscrito anteriormente.

¿EventSourcing tiene algo que ver con BlockChain o solo se parecen?

Recordar que todo patrón de diseño va a tener beneficios y va a tener consecuencias, por eso hay que analizar cuál es el mejor o el patrón que más beneficios tiene en la solución del problema!