11 pontos por xguru 2024-12-07 | 2 comentários | Compartilhar no WhatsApp
  • Plataforma open source de engajamento de clientes baseada em IA, que ajuda a projetar jornadas de usuário personalizadas em grande escala usando dados
    • Alternativa open source ao Customer.io
  • Problemas das ferramentas existentes: custo alto e dificuldade de ter que trocar toda a stack de comunicação atual
  • O LimeJourney foi projetado com foco em dois princípios:
    • Acessibilidade open source: desenvolvedores e equipes pequenas podem usar gratuitamente. Para quem prefere uma solução gerenciada, também há uma versão em nuvem
    • Suporte à integração existente (BYOI): oferece integração com ferramentas já existentes, sem necessidade de substituir toda a stack

Principais recursos

  • Insights com IA: usa modelos de IA para ajudar a entender os clientes
  • Construtor visual de jornadas: permite criar jornadas complexas de usuário com uma interface intuitiva de arrastar e soltar
  • Segmentação dinâmica: permite criar segmentos com base em eventos ou atributos dos usuários
    • Ex.: "usuários que não compraram nos últimos 30 dias"
  • Integrações: pode se conectar a ferramentas e serviços existentes, e continua adicionando integrações relacionadas à coleta de dados

Stack técnica do LimeJourney

  • Aplicação full-stack em monorepo (escrita em TypeScript)
  • Principais tecnologias:
    • Turbo: gerenciamento de monorepo
    • Next.js: desenvolvimento do app web
    • TailwindCSS: estilização
    • Express: desenvolvimento de API
    • TSOA: geração de rotas de API e documentação OpenAPI
    • PostgreSQL: principal armazenamento de dados
    • Redis: armazenamento KV para gerenciar o mapeamento Journey-Trigger
    • ClickHouse: gerenciamento de dados de eventos/entidades em grande escala e segmentação em tempo real
    • Temporal: execução das jornadas criadas no construtor visual de jornadas
    • Kafka: barramento central de eventos (hospedado na Upstash)

Arquitetura de backend

Componentes principais

  • Backbone de streaming de eventos (baseado em Kafka)
    • Processamento em alta velocidade de eventos de usuários e do sistema
    • Suporte à comunicação assíncrona entre módulos dentro do sistema
    • Fornece consistência de dados e capacidade de replay por meio de event sourcing
  • Motor de segmentação em tempo real
    • Aproveita os recursos de consulta de alto desempenho do ClickHouse
    • Cria segmentos dinâmicos com base em atributos e comportamentos dos usuários
    • Permite cálculos rápidos de segmentos mesmo em grande escala
  • Orquestração de jornadas
    • Gerencia jornadas complexas de usuários com base no Temporal
    • Garante a confiabilidade dos workflows e permite recuperação em caso de falha
    • Suporta pausar, retomar e modificar jornadas
  • Gerenciamento de entidades
    • Gerencia perfis e atributos de usuários
    • Publica eventos de alteração de entidades
    • Fornece dados unificados de usuários em toda a plataforma

Fluxo de dados e interações

  1. Ações do usuário (ex.: visualização de página, compra) geram eventos que são enviados ao Kafka
  2. Os eventos são armazenados no ClickHouse para dar suporte à análise de dados em grande escala
  3. O motor de segmentação atualiza segmentos de usuários em tempo real com base nos eventos e dados mais recentes
  4. Mudanças de segmentação ou eventos específicos acionam a orquestração de jornadas
  5. O Temporal gerencia as jornadas e executa tarefas como:
  • Consultar dados de usuários e histórico de eventos
  • Verificar o estado atual da segmentação
  • Acionar ações externas (ex.: envio de e-mail, notificações push)
  1. Quando ocorrem tarefas importantes ou mudanças de estado, novos eventos são gerados e enviados de volta ao sistema

2 comentários

 
kandk 2024-12-09

O Kafka seria adequado para esse tipo de evento em grande volume?

 
yangeok 2024-12-16

Como isso é usado por exigir processamento assíncrono, não seria adequado?