SlideShare una empresa de Scribd logo
1 de 13
Diego Arcos
Technical Lead Engineer en .Entropy
¿Qué es
Google Search?
Es el canal de Google
especializado en anuncios
publicitarios de texto.
Mantener el progreso
del flujo (Volver al último
paso modificado).
Requerimientos Funcionales
Poder realizar cambios
en cualquier parte del
flujo sin alterar otros
pasos del mismo
No tener que finalizar el
flujo de una campaña
para poder crear otra.
Desechar el flujo por
completo y descartar los
cambios que se
generaron.
La API no debe guardar
ningún estado
(Stateless).
Requerimientos no Funcionales
Poder escalar la solución
ya que hay flujos que
comparten pasos.
La API solo debe recibir
información acorde al
progreso del usuario.
Tiempo máximo de
latencia no debe ser
mayor a 300ms
El flujo es extenso y
puede tener muchas
variantes.
Ahora tenemos un Problema a Resolver...
Requerimientos
funcionales
Requerimientos no
funcionales
Tiempo justo para hacer
release del feature.
Ideas de solución
Podíamos guardar en memoria la serie de pasos,
para así saber cuál era el siguiente y cuál el
anterior.
¿Que pasa si estas en un paso donde estes cerca del final y mueves la URL?
Podrias mandar información via API en pasos que no corresponden al actual.
No solo los pasos permitidos son hacia adelante y hacia atrás, depende el paso
puedes retroceder más de uno, incluso.
01 Approach
Inconvenientes
Podemos modelar los pasos como un grafo dirigido
y acotar las transiciones por medio de condiciones.
No es una solución escalable, si se modifica el flujo habría que rehacer
el grafo o al menos una parte de él.
02 Approach
Inconvenientes
¿Tener una máquina de estados en donde las transiciones son triggers (acciones),
y solo configuramos los estados a que reciban uno o más triggers, estos triggers,
te llevarán a los estados permitidos que también son configurados en los estados.
Si hay algún cambio en el flujo simplemente hay que agregar o quitar triggers.
03 Approach
Podemos escalar la solución incluso por ciudades.
Nuestra API sigue siendo stateless.
No hay lógica del negocio del lado del cliente.
Permitimos a nuestros clientes hacer drafts de campañas.
Key Results
Clientes
Entropy
API
Infraestructura
Entropy
State Machine
HTTP
GET/POST
Thrift
READ/WRITE
READ
Thrift
READ
¿Alguna pregunta?
¡Muchas Gracias!
diego@entropy.tech
Optimiza tus campañas digitales
Inteligencia Artificial/Machine Learning

Más contenido relacionado

Similar a Entropy: Implementación de un servicio de onboarding por medio de máquinas de estado

documento_no_valido_para_nomeacuerdo.pptx
documento_no_valido_para_nomeacuerdo.pptxdocumento_no_valido_para_nomeacuerdo.pptx
documento_no_valido_para_nomeacuerdo.pptxmauriciohernandezp1
 
Desarrollo de aplicaciones altamente escalables
Desarrollo de aplicaciones altamente escalablesDesarrollo de aplicaciones altamente escalables
Desarrollo de aplicaciones altamente escalablesGlobant
 
Foro de Innovación Tecnologica, Universidad de Galileo - dokshor - Ciudad de ...
Foro de Innovación Tecnologica, Universidad de Galileo - dokshor - Ciudad de ...Foro de Innovación Tecnologica, Universidad de Galileo - dokshor - Ciudad de ...
Foro de Innovación Tecnologica, Universidad de Galileo - dokshor - Ciudad de ...Fabian Andres Ramirez Sepulveda
 
Objetivo 2025: Cómo preparar la transición hacia S/4 HANA
Objetivo 2025: Cómo preparar la transición hacia S/4 HANAObjetivo 2025: Cómo preparar la transición hacia S/4 HANA
Objetivo 2025: Cómo preparar la transición hacia S/4 HANAi3s
 
Tutorial Microsoft Power Automate: Automatización de flujos de trabajo para m...
Tutorial Microsoft Power Automate: Automatización de flujos de trabajo para m...Tutorial Microsoft Power Automate: Automatización de flujos de trabajo para m...
Tutorial Microsoft Power Automate: Automatización de flujos de trabajo para m...Fernando Leandro
 
Software TI_Cecilia Delvira Rodríguez Pérez
Software TI_Cecilia Delvira Rodríguez PérezSoftware TI_Cecilia Delvira Rodríguez Pérez
Software TI_Cecilia Delvira Rodríguez PérezGeorge Aguilar
 
Cómo crear una tienda online gratis
 Cómo crear una tienda online gratis Cómo crear una tienda online gratis
Cómo crear una tienda online gratislaurittabarrera
 
The wpo academy: Qué es y que mide la velocidad de carga de una web?
The wpo academy: Qué es y que mide la velocidad de carga de una web?The wpo academy: Qué es y que mide la velocidad de carga de una web?
The wpo academy: Qué es y que mide la velocidad de carga de una web?Digital Growth
 
Asug Chile - Grupo de estudios SAP SuccessFactors
Asug Chile - Grupo de estudios SAP SuccessFactorsAsug Chile - Grupo de estudios SAP SuccessFactors
Asug Chile - Grupo de estudios SAP SuccessFactorsIvo Milkovic
 
Jupama App
Jupama AppJupama App
Jupama AppCoduxe
 
Construcción de un siti web
Construcción de un siti webConstrucción de un siti web
Construcción de un siti webmascorroale
 

Similar a Entropy: Implementación de un servicio de onboarding por medio de máquinas de estado (20)

documento_no_valido_para_nomeacuerdo.pptx
documento_no_valido_para_nomeacuerdo.pptxdocumento_no_valido_para_nomeacuerdo.pptx
documento_no_valido_para_nomeacuerdo.pptx
 
Desarrollo de aplicaciones altamente escalables
Desarrollo de aplicaciones altamente escalablesDesarrollo de aplicaciones altamente escalables
Desarrollo de aplicaciones altamente escalables
 
PrestaShop
PrestaShopPrestaShop
PrestaShop
 
Magento
MagentoMagento
Magento
 
Foro de Innovación Tecnologica, Universidad de Galileo - dokshor - Ciudad de ...
Foro de Innovación Tecnologica, Universidad de Galileo - dokshor - Ciudad de ...Foro de Innovación Tecnologica, Universidad de Galileo - dokshor - Ciudad de ...
Foro de Innovación Tecnologica, Universidad de Galileo - dokshor - Ciudad de ...
 
SAP_S4HANA.pptx
SAP_S4HANA.pptxSAP_S4HANA.pptx
SAP_S4HANA.pptx
 
SAP_S4HANA.pptx
SAP_S4HANA.pptxSAP_S4HANA.pptx
SAP_S4HANA.pptx
 
Objetivo 2025: Cómo preparar la transición hacia S/4 HANA
Objetivo 2025: Cómo preparar la transición hacia S/4 HANAObjetivo 2025: Cómo preparar la transición hacia S/4 HANA
Objetivo 2025: Cómo preparar la transición hacia S/4 HANA
 
Tutorial Microsoft Power Automate: Automatización de flujos de trabajo para m...
Tutorial Microsoft Power Automate: Automatización de flujos de trabajo para m...Tutorial Microsoft Power Automate: Automatización de flujos de trabajo para m...
Tutorial Microsoft Power Automate: Automatización de flujos de trabajo para m...
 
Software TI_Cecilia Delvira Rodríguez Pérez
Software TI_Cecilia Delvira Rodríguez PérezSoftware TI_Cecilia Delvira Rodríguez Pérez
Software TI_Cecilia Delvira Rodríguez Pérez
 
Cómo crear una tienda online gratis
 Cómo crear una tienda online gratis Cómo crear una tienda online gratis
Cómo crear una tienda online gratis
 
Sistema de facturación
Sistema de facturaciónSistema de facturación
Sistema de facturación
 
The wpo academy: Qué es y que mide la velocidad de carga de una web?
The wpo academy: Qué es y que mide la velocidad de carga de una web?The wpo academy: Qué es y que mide la velocidad de carga de una web?
The wpo academy: Qué es y que mide la velocidad de carga de una web?
 
Asug Chile - Grupo de estudios SAP SuccessFactors
Asug Chile - Grupo de estudios SAP SuccessFactorsAsug Chile - Grupo de estudios SAP SuccessFactors
Asug Chile - Grupo de estudios SAP SuccessFactors
 
Glosario de Análisis de Puntos de Función
Glosario de Análisis de Puntos de FunciónGlosario de Análisis de Puntos de Función
Glosario de Análisis de Puntos de Función
 
Pseint 10-7
Pseint 10-7 Pseint 10-7
Pseint 10-7
 
Openbravo
OpenbravoOpenbravo
Openbravo
 
Jupama App
Jupama AppJupama App
Jupama App
 
Sava
SavaSava
Sava
 
Construcción de un siti web
Construcción de un siti webConstrucción de un siti web
Construcción de un siti web
 

Más de Software Guru

Hola Mundo del Internet de las Cosas
Hola Mundo del Internet de las CosasHola Mundo del Internet de las Cosas
Hola Mundo del Internet de las CosasSoftware Guru
 
Estructuras de datos avanzadas: Casos de uso reales
Estructuras de datos avanzadas: Casos de uso realesEstructuras de datos avanzadas: Casos de uso reales
Estructuras de datos avanzadas: Casos de uso realesSoftware Guru
 
Building bias-aware environments
Building bias-aware environmentsBuilding bias-aware environments
Building bias-aware environmentsSoftware Guru
 
El secreto para ser un desarrollador Senior
El secreto para ser un desarrollador SeniorEl secreto para ser un desarrollador Senior
El secreto para ser un desarrollador SeniorSoftware Guru
 
Cómo encontrar el trabajo remoto ideal
Cómo encontrar el trabajo remoto idealCómo encontrar el trabajo remoto ideal
Cómo encontrar el trabajo remoto idealSoftware Guru
 
Automatizando ideas con Apache Airflow
Automatizando ideas con Apache AirflowAutomatizando ideas con Apache Airflow
Automatizando ideas con Apache AirflowSoftware Guru
 
How thick data can improve big data analysis for business:
How thick data can improve big data analysis for business:How thick data can improve big data analysis for business:
How thick data can improve big data analysis for business:Software Guru
 
Introducción al machine learning
Introducción al machine learningIntroducción al machine learning
Introducción al machine learningSoftware Guru
 
Democratizando el uso de CoDi
Democratizando el uso de CoDiDemocratizando el uso de CoDi
Democratizando el uso de CoDiSoftware Guru
 
Gestionando la felicidad de los equipos con Management 3.0
Gestionando la felicidad de los equipos con Management 3.0Gestionando la felicidad de los equipos con Management 3.0
Gestionando la felicidad de los equipos con Management 3.0Software Guru
 
Taller: Creación de Componentes Web re-usables con StencilJS
Taller: Creación de Componentes Web re-usables con StencilJSTaller: Creación de Componentes Web re-usables con StencilJS
Taller: Creación de Componentes Web re-usables con StencilJSSoftware Guru
 
El camino del full stack developer (o como hacemos en SERTI para que no solo ...
El camino del full stack developer (o como hacemos en SERTI para que no solo ...El camino del full stack developer (o como hacemos en SERTI para que no solo ...
El camino del full stack developer (o como hacemos en SERTI para que no solo ...Software Guru
 
¿Qué significa ser un programador en Bitso?
¿Qué significa ser un programador en Bitso?¿Qué significa ser un programador en Bitso?
¿Qué significa ser un programador en Bitso?Software Guru
 
Colaboración efectiva entre desarrolladores del cliente y tu equipo.
Colaboración efectiva entre desarrolladores del cliente y tu equipo.Colaboración efectiva entre desarrolladores del cliente y tu equipo.
Colaboración efectiva entre desarrolladores del cliente y tu equipo.Software Guru
 
Pruebas de integración con Docker en Azure DevOps
Pruebas de integración con Docker en Azure DevOpsPruebas de integración con Docker en Azure DevOps
Pruebas de integración con Docker en Azure DevOpsSoftware Guru
 
Elixir + Elm: Usando lenguajes funcionales en servicios productivos
Elixir + Elm: Usando lenguajes funcionales en servicios productivosElixir + Elm: Usando lenguajes funcionales en servicios productivos
Elixir + Elm: Usando lenguajes funcionales en servicios productivosSoftware Guru
 
Así publicamos las apps de Spotify sin stress
Así publicamos las apps de Spotify sin stressAsí publicamos las apps de Spotify sin stress
Así publicamos las apps de Spotify sin stressSoftware Guru
 
Achieving Your Goals: 5 Tips to successfully achieve your goals
Achieving Your Goals: 5 Tips to successfully achieve your goalsAchieving Your Goals: 5 Tips to successfully achieve your goals
Achieving Your Goals: 5 Tips to successfully achieve your goalsSoftware Guru
 
Acciones de comunidades tech en tiempos del Covid19
Acciones de comunidades tech en tiempos del Covid19Acciones de comunidades tech en tiempos del Covid19
Acciones de comunidades tech en tiempos del Covid19Software Guru
 
De lo operativo a lo estratégico: un modelo de management de diseño
De lo operativo a lo estratégico: un modelo de management de diseñoDe lo operativo a lo estratégico: un modelo de management de diseño
De lo operativo a lo estratégico: un modelo de management de diseñoSoftware Guru
 

Más de Software Guru (20)

Hola Mundo del Internet de las Cosas
Hola Mundo del Internet de las CosasHola Mundo del Internet de las Cosas
Hola Mundo del Internet de las Cosas
 
Estructuras de datos avanzadas: Casos de uso reales
Estructuras de datos avanzadas: Casos de uso realesEstructuras de datos avanzadas: Casos de uso reales
Estructuras de datos avanzadas: Casos de uso reales
 
Building bias-aware environments
Building bias-aware environmentsBuilding bias-aware environments
Building bias-aware environments
 
El secreto para ser un desarrollador Senior
El secreto para ser un desarrollador SeniorEl secreto para ser un desarrollador Senior
El secreto para ser un desarrollador Senior
 
Cómo encontrar el trabajo remoto ideal
Cómo encontrar el trabajo remoto idealCómo encontrar el trabajo remoto ideal
Cómo encontrar el trabajo remoto ideal
 
Automatizando ideas con Apache Airflow
Automatizando ideas con Apache AirflowAutomatizando ideas con Apache Airflow
Automatizando ideas con Apache Airflow
 
How thick data can improve big data analysis for business:
How thick data can improve big data analysis for business:How thick data can improve big data analysis for business:
How thick data can improve big data analysis for business:
 
Introducción al machine learning
Introducción al machine learningIntroducción al machine learning
Introducción al machine learning
 
Democratizando el uso de CoDi
Democratizando el uso de CoDiDemocratizando el uso de CoDi
Democratizando el uso de CoDi
 
Gestionando la felicidad de los equipos con Management 3.0
Gestionando la felicidad de los equipos con Management 3.0Gestionando la felicidad de los equipos con Management 3.0
Gestionando la felicidad de los equipos con Management 3.0
 
Taller: Creación de Componentes Web re-usables con StencilJS
Taller: Creación de Componentes Web re-usables con StencilJSTaller: Creación de Componentes Web re-usables con StencilJS
Taller: Creación de Componentes Web re-usables con StencilJS
 
El camino del full stack developer (o como hacemos en SERTI para que no solo ...
El camino del full stack developer (o como hacemos en SERTI para que no solo ...El camino del full stack developer (o como hacemos en SERTI para que no solo ...
El camino del full stack developer (o como hacemos en SERTI para que no solo ...
 
¿Qué significa ser un programador en Bitso?
¿Qué significa ser un programador en Bitso?¿Qué significa ser un programador en Bitso?
¿Qué significa ser un programador en Bitso?
 
Colaboración efectiva entre desarrolladores del cliente y tu equipo.
Colaboración efectiva entre desarrolladores del cliente y tu equipo.Colaboración efectiva entre desarrolladores del cliente y tu equipo.
Colaboración efectiva entre desarrolladores del cliente y tu equipo.
 
Pruebas de integración con Docker en Azure DevOps
Pruebas de integración con Docker en Azure DevOpsPruebas de integración con Docker en Azure DevOps
Pruebas de integración con Docker en Azure DevOps
 
Elixir + Elm: Usando lenguajes funcionales en servicios productivos
Elixir + Elm: Usando lenguajes funcionales en servicios productivosElixir + Elm: Usando lenguajes funcionales en servicios productivos
Elixir + Elm: Usando lenguajes funcionales en servicios productivos
 
Así publicamos las apps de Spotify sin stress
Así publicamos las apps de Spotify sin stressAsí publicamos las apps de Spotify sin stress
Así publicamos las apps de Spotify sin stress
 
Achieving Your Goals: 5 Tips to successfully achieve your goals
Achieving Your Goals: 5 Tips to successfully achieve your goalsAchieving Your Goals: 5 Tips to successfully achieve your goals
Achieving Your Goals: 5 Tips to successfully achieve your goals
 
Acciones de comunidades tech en tiempos del Covid19
Acciones de comunidades tech en tiempos del Covid19Acciones de comunidades tech en tiempos del Covid19
Acciones de comunidades tech en tiempos del Covid19
 
De lo operativo a lo estratégico: un modelo de management de diseño
De lo operativo a lo estratégico: un modelo de management de diseñoDe lo operativo a lo estratégico: un modelo de management de diseño
De lo operativo a lo estratégico: un modelo de management de diseño
 

Último

Ejercicio 1 periodo 2 de Tecnología 2024
Ejercicio 1 periodo 2 de Tecnología 2024Ejercicio 1 periodo 2 de Tecnología 2024
Ejercicio 1 periodo 2 de Tecnología 2024NicolleAndrade7
 
PRÁCTICA Nº 4: “Análisis de secuencias del ADN con el software BioEdit y uso ...
PRÁCTICA Nº 4: “Análisis de secuencias del ADN con el software BioEdit y uso ...PRÁCTICA Nº 4: “Análisis de secuencias del ADN con el software BioEdit y uso ...
PRÁCTICA Nº 4: “Análisis de secuencias del ADN con el software BioEdit y uso ...dramosbrise1403
 
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptxinfor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptxgustavovasquezv56
 
Desarrollo del Dominio del Internet - Estrada
Desarrollo del Dominio del Internet - EstradaDesarrollo del Dominio del Internet - Estrada
Desarrollo del Dominio del Internet - EstradaRicardoEstrada90
 
Redes Neuronales profundas convolucionales CNN ́s-1.pdf
Redes Neuronales profundas convolucionales CNN ́s-1.pdfRedes Neuronales profundas convolucionales CNN ́s-1.pdf
Redes Neuronales profundas convolucionales CNN ́s-1.pdfJosAndrRosarioVzquez
 
Editorial. Grupo de 12B. La Salle Margarita.pdf
Editorial. Grupo de 12B. La Salle Margarita.pdfEditorial. Grupo de 12B. La Salle Margarita.pdf
Editorial. Grupo de 12B. La Salle Margarita.pdfYanitza28
 
herramientas web para estudiantes interesados en el tema
herramientas web para estudiantes interesados en el temaherramientas web para estudiantes interesados en el tema
herramientas web para estudiantes interesados en el temaJadeVilcscordova
 
Introduccion-a-la-electronica-industrial.pptx
Introduccion-a-la-electronica-industrial.pptxIntroduccion-a-la-electronica-industrial.pptx
Introduccion-a-la-electronica-industrial.pptxcj12paz
 
el uso de las TIC en la vida cotidiana.pptx
el uso de las TIC en la vida cotidiana.pptxel uso de las TIC en la vida cotidiana.pptx
el uso de las TIC en la vida cotidiana.pptx221112876
 
10°8 - Avances tecnologicos del siglo XXI 10-8
10°8 - Avances tecnologicos del siglo XXI 10-810°8 - Avances tecnologicos del siglo XXI 10-8
10°8 - Avances tecnologicos del siglo XXI 10-8antoniopalmieriluna
 
Imágenes digitales: Calidad de la información
Imágenes digitales: Calidad de la informaciónImágenes digitales: Calidad de la información
Imágenes digitales: Calidad de la informaciónUniversidad de Sonora
 
De Olmos Santiago_Dolores _ M1S3AI6.pptx
De Olmos Santiago_Dolores _ M1S3AI6.pptxDe Olmos Santiago_Dolores _ M1S3AI6.pptx
De Olmos Santiago_Dolores _ M1S3AI6.pptxdoloresolmosantiago
 
Función del analizador léxico.pdf presentacion
Función del analizador léxico.pdf presentacionFunción del analizador léxico.pdf presentacion
Función del analizador léxico.pdf presentacionEmanuelMuoz11
 
Chat GPT para la educación Latinoamerica
Chat GPT para la educación LatinoamericaChat GPT para la educación Latinoamerica
Chat GPT para la educación LatinoamericaEdwinGarca59
 
Actividad 6/Las TIC en la Vida Cotidiana.
Actividad 6/Las TIC en la Vida Cotidiana.Actividad 6/Las TIC en la Vida Cotidiana.
Actividad 6/Las TIC en la Vida Cotidiana.241534381
 
microsoft word manuales para todos tipos de estudiamte
microsoft word manuales para todos tipos de estudiamtemicrosoft word manuales para todos tipos de estudiamte
microsoft word manuales para todos tipos de estudiamte2024020140
 
Tipos de Datos de Microsoft Access-JOEL GARCIA.pptx
Tipos de Datos de Microsoft Access-JOEL GARCIA.pptxTipos de Datos de Microsoft Access-JOEL GARCIA.pptx
Tipos de Datos de Microsoft Access-JOEL GARCIA.pptxJOELGARCIA849853
 
Navegadores de internet - Nuevas Tecnologías de la Información y la Comunicación
Navegadores de internet - Nuevas Tecnologías de la Información y la ComunicaciónNavegadores de internet - Nuevas Tecnologías de la Información y la Comunicación
Navegadores de internet - Nuevas Tecnologías de la Información y la ComunicaciónAntonia Yamilet Perez Palomares
 
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdfpresentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdfaxelv9257
 
Tipos de datos en Microsoft Access de Base de Datos
Tipos de datos en Microsoft Access de Base de DatosTipos de datos en Microsoft Access de Base de Datos
Tipos de datos en Microsoft Access de Base de DatosYOMIRAVILLARREAL1
 

Último (20)

Ejercicio 1 periodo 2 de Tecnología 2024
Ejercicio 1 periodo 2 de Tecnología 2024Ejercicio 1 periodo 2 de Tecnología 2024
Ejercicio 1 periodo 2 de Tecnología 2024
 
PRÁCTICA Nº 4: “Análisis de secuencias del ADN con el software BioEdit y uso ...
PRÁCTICA Nº 4: “Análisis de secuencias del ADN con el software BioEdit y uso ...PRÁCTICA Nº 4: “Análisis de secuencias del ADN con el software BioEdit y uso ...
PRÁCTICA Nº 4: “Análisis de secuencias del ADN con el software BioEdit y uso ...
 
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptxinfor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
 
Desarrollo del Dominio del Internet - Estrada
Desarrollo del Dominio del Internet - EstradaDesarrollo del Dominio del Internet - Estrada
Desarrollo del Dominio del Internet - Estrada
 
Redes Neuronales profundas convolucionales CNN ́s-1.pdf
Redes Neuronales profundas convolucionales CNN ́s-1.pdfRedes Neuronales profundas convolucionales CNN ́s-1.pdf
Redes Neuronales profundas convolucionales CNN ́s-1.pdf
 
Editorial. Grupo de 12B. La Salle Margarita.pdf
Editorial. Grupo de 12B. La Salle Margarita.pdfEditorial. Grupo de 12B. La Salle Margarita.pdf
Editorial. Grupo de 12B. La Salle Margarita.pdf
 
herramientas web para estudiantes interesados en el tema
herramientas web para estudiantes interesados en el temaherramientas web para estudiantes interesados en el tema
herramientas web para estudiantes interesados en el tema
 
Introduccion-a-la-electronica-industrial.pptx
Introduccion-a-la-electronica-industrial.pptxIntroduccion-a-la-electronica-industrial.pptx
Introduccion-a-la-electronica-industrial.pptx
 
el uso de las TIC en la vida cotidiana.pptx
el uso de las TIC en la vida cotidiana.pptxel uso de las TIC en la vida cotidiana.pptx
el uso de las TIC en la vida cotidiana.pptx
 
10°8 - Avances tecnologicos del siglo XXI 10-8
10°8 - Avances tecnologicos del siglo XXI 10-810°8 - Avances tecnologicos del siglo XXI 10-8
10°8 - Avances tecnologicos del siglo XXI 10-8
 
Imágenes digitales: Calidad de la información
Imágenes digitales: Calidad de la informaciónImágenes digitales: Calidad de la información
Imágenes digitales: Calidad de la información
 
De Olmos Santiago_Dolores _ M1S3AI6.pptx
De Olmos Santiago_Dolores _ M1S3AI6.pptxDe Olmos Santiago_Dolores _ M1S3AI6.pptx
De Olmos Santiago_Dolores _ M1S3AI6.pptx
 
Función del analizador léxico.pdf presentacion
Función del analizador léxico.pdf presentacionFunción del analizador léxico.pdf presentacion
Función del analizador léxico.pdf presentacion
 
Chat GPT para la educación Latinoamerica
Chat GPT para la educación LatinoamericaChat GPT para la educación Latinoamerica
Chat GPT para la educación Latinoamerica
 
Actividad 6/Las TIC en la Vida Cotidiana.
Actividad 6/Las TIC en la Vida Cotidiana.Actividad 6/Las TIC en la Vida Cotidiana.
Actividad 6/Las TIC en la Vida Cotidiana.
 
microsoft word manuales para todos tipos de estudiamte
microsoft word manuales para todos tipos de estudiamtemicrosoft word manuales para todos tipos de estudiamte
microsoft word manuales para todos tipos de estudiamte
 
Tipos de Datos de Microsoft Access-JOEL GARCIA.pptx
Tipos de Datos de Microsoft Access-JOEL GARCIA.pptxTipos de Datos de Microsoft Access-JOEL GARCIA.pptx
Tipos de Datos de Microsoft Access-JOEL GARCIA.pptx
 
Navegadores de internet - Nuevas Tecnologías de la Información y la Comunicación
Navegadores de internet - Nuevas Tecnologías de la Información y la ComunicaciónNavegadores de internet - Nuevas Tecnologías de la Información y la Comunicación
Navegadores de internet - Nuevas Tecnologías de la Información y la Comunicación
 
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdfpresentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
 
Tipos de datos en Microsoft Access de Base de Datos
Tipos de datos en Microsoft Access de Base de DatosTipos de datos en Microsoft Access de Base de Datos
Tipos de datos en Microsoft Access de Base de Datos
 

Entropy: Implementación de un servicio de onboarding por medio de máquinas de estado

  • 1. Diego Arcos Technical Lead Engineer en .Entropy
  • 2. ¿Qué es Google Search? Es el canal de Google especializado en anuncios publicitarios de texto.
  • 3.
  • 4. Mantener el progreso del flujo (Volver al último paso modificado). Requerimientos Funcionales Poder realizar cambios en cualquier parte del flujo sin alterar otros pasos del mismo No tener que finalizar el flujo de una campaña para poder crear otra. Desechar el flujo por completo y descartar los cambios que se generaron.
  • 5. La API no debe guardar ningún estado (Stateless). Requerimientos no Funcionales Poder escalar la solución ya que hay flujos que comparten pasos. La API solo debe recibir información acorde al progreso del usuario. Tiempo máximo de latencia no debe ser mayor a 300ms
  • 6. El flujo es extenso y puede tener muchas variantes. Ahora tenemos un Problema a Resolver... Requerimientos funcionales Requerimientos no funcionales Tiempo justo para hacer release del feature.
  • 7. Ideas de solución Podíamos guardar en memoria la serie de pasos, para así saber cuál era el siguiente y cuál el anterior. ¿Que pasa si estas en un paso donde estes cerca del final y mueves la URL? Podrias mandar información via API en pasos que no corresponden al actual. No solo los pasos permitidos son hacia adelante y hacia atrás, depende el paso puedes retroceder más de uno, incluso. 01 Approach Inconvenientes
  • 8. Podemos modelar los pasos como un grafo dirigido y acotar las transiciones por medio de condiciones. No es una solución escalable, si se modifica el flujo habría que rehacer el grafo o al menos una parte de él. 02 Approach Inconvenientes
  • 9. ¿Tener una máquina de estados en donde las transiciones son triggers (acciones), y solo configuramos los estados a que reciban uno o más triggers, estos triggers, te llevarán a los estados permitidos que también son configurados en los estados. Si hay algún cambio en el flujo simplemente hay que agregar o quitar triggers. 03 Approach
  • 10. Podemos escalar la solución incluso por ciudades. Nuestra API sigue siendo stateless. No hay lógica del negocio del lado del cliente. Permitimos a nuestros clientes hacer drafts de campañas. Key Results
  • 13. ¡Muchas Gracias! diego@entropy.tech Optimiza tus campañas digitales Inteligencia Artificial/Machine Learning