11 puntos por xguru 2024-12-07 | 2 comentarios | Compartir por WhatsApp
  • Plataforma open source de participación de clientes impulsada por IA, que ayuda a diseñar recorridos de usuario personalizados a gran escala aprovechando los datos
    • Alternativa open source a Customer.io
  • Problemas de las herramientas existentes: alto costo y la dificultad de tener que cambiar toda la pila de comunicación actual
  • LimeJourney fue diseñado en torno a estos dos principios:
    • Accesibilidad open source: desarrolladores y equipos pequeños pueden usarlo gratis. Si se prefiere una solución administrada, también ofrece una versión en la nube
    • Soporte para integraciones existentes (BYOI): permite integrarse con las herramientas actuales, sin necesidad de reemplazar toda la pila

Funciones principales

  • Insights impulsados por IA: usa modelos de IA para ayudar a comprender a los clientes
  • Constructor visual de recorridos: permite crear recorridos de usuario complejos con una interfaz intuitiva de arrastrar y soltar
  • Segmentación dinámica: permite crear segmentos según eventos o atributos del usuario
    • Ejemplo: "usuarios que no han comprado en los últimos 30 días"
  • Funciones de integración: puede conectarse con herramientas y servicios existentes, y sigue agregando integraciones relacionadas con la recolección de datos

Stack tecnológico de LimeJourney

  • Aplicación full-stack monorepo (escrita en TypeScript)
  • Tecnologías principales:
    • Turbo: gestión del monorepo
    • Next.js: desarrollo de la app web
    • TailwindCSS: estilos
    • Express: desarrollo de API
    • TSOA: generación de rutas de API y documentación OpenAPI
    • PostgreSQL: almacén de datos principal
    • Redis: almacén KV para gestionar el mapeo Journey-Trigger
    • ClickHouse: gestión de datos de eventos/entidades a gran escala y segmentación en tiempo real
    • Temporal: ejecución de recorridos creados en el constructor visual de recorridos
    • Kafka: bus central de eventos (alojado en Upstash)

Arquitectura de backend

Componentes clave

  • Backbone de streaming de eventos (basado en Kafka)
    • Procesamiento de alta velocidad de eventos de usuarios y del sistema
    • Soporte para comunicación asíncrona entre módulos dentro del sistema
    • Proporciona consistencia de datos y capacidad de reproducción mediante event sourcing
  • Motor de segmentación en tiempo real
    • Aprovecha las capacidades de consultas de alto rendimiento de ClickHouse
    • Crea segmentos dinámicos basados en atributos y comportamiento del usuario
    • Permite cálculos rápidos de segmentos incluso a gran escala
  • Orquestación de recorridos
    • Gestiona recorridos de usuario complejos con base en Temporal
    • Garantiza la confiabilidad de los workflows y permite recuperación ante fallas
    • Soporta pausar, reanudar y modificar recorridos
  • Gestión de entidades
    • Administra perfiles y atributos de usuario
    • Publica eventos de cambios en entidades
    • Proporciona datos de usuario unificados en toda la plataforma

Flujo de datos e interacciones

  1. Las acciones del usuario (por ejemplo, vistas de página, compras) generan eventos que se envían a Kafka
  2. Los eventos se almacenan en ClickHouse para habilitar análisis de datos a gran escala
  3. El motor de segmentación actualiza segmentos de usuarios en tiempo real con base en los eventos y datos más recientes
  4. Los cambios de segmentación o eventos específicos activan la orquestación de recorridos
  5. Temporal gestiona los recorridos y realiza tareas como las siguientes:
  • Consultar datos del usuario y el historial de eventos
  • Verificar el estado actual de segmentación
  • Activar acciones externas (por ejemplo, envío de correos electrónicos, notificaciones push)
  1. Cuando ocurren tareas clave o cambios de estado, se generan nuevos eventos y se vuelven a enviar al sistema

2 comentarios

 
kandk 2024-12-09

¿kafka sería adecuado para eventos de gran volumen como estos?

 
yangeok 2024-12-16

Como se usa porque se necesita procesamiento asíncrono, ¿no sería adecuado?