- Plateforme open source d’engagement client basée sur l’IA, qui permet de concevoir des parcours utilisateurs personnalisés à grande échelle en exploitant les données
- Alternative open source à Customer.io
- Problèmes des outils existants : coût élevé, difficulté à devoir remplacer toute la stack de communication existante
- LimeJourney a été conçu autour de deux principes :
- Accessibilité open source : les développeurs et les petites équipes peuvent l’utiliser gratuitement. Une version cloud est également proposée pour ceux qui préfèrent une solution managée
- Prise en charge des intégrations existantes (BYOI) : intégration avec les outils existants, sans nécessité de remplacer toute la stack
Fonctionnalités principales
- Insights alimentés par l’IA : aide à mieux comprendre les clients à l’aide de modèles d’IA
- Visual journey builder : création de parcours utilisateurs complexes via une interface intuitive en glisser-déposer
- Segmentation dynamique : création de segments à partir des événements ou des propriétés des utilisateurs
- Exemple : "utilisateurs n’ayant effectué aucun achat au cours des 30 derniers jours"
- Intégrations : connexion possible avec les outils et services existants, avec ajout continu d’intégrations liées à la collecte de données
Stack technique de LimeJourney
- Application full-stack monorepo (écrite en TypeScript)
- Principales technologies :
- Turbo : gestion du monorepo
- Next.js : développement de l’application web
- TailwindCSS : styling
- Express : développement d’API
- TSOA : génération des routes d’API et de la documentation OpenAPI
- PostgreSQL : principal stockage de données
- Redis : stockage KV pour gérer le mapping Journey-Trigger
- ClickHouse : gestion de données d’événements/entités à grande échelle et segmentation en temps réel
- Temporal : exécution des parcours créés dans le visual journey builder
- Kafka : bus d’événements central (hébergé chez Upstash)
Architecture backend
Composants clés
- Backbone de streaming d’événements (basé sur Kafka)
- Traitement rapide des événements utilisateur et système
- Prise en charge de la communication asynchrone entre les modules du système
- Cohérence des données et possibilité de relecture grâce à l’event sourcing
- Moteur de segmentation en temps réel
- Exploite les capacités de requête haute performance de ClickHouse
- Création dynamique de segments basée sur les propriétés et comportements utilisateurs
- Calcul rapide des segments, même à grande échelle
- Orchestration des parcours
- Gestion de parcours utilisateurs complexes basée sur Temporal
- Fiabilité des workflows garantie, avec reprise possible en cas d’échec
- Prise en charge de la pause, de la reprise et de la modification des parcours
- Gestion des entités
- Gestion des profils utilisateurs et de leurs propriétés
- Publication d’événements lors des changements d’entité
- Fournit des données utilisateur unifiées à l’échelle de la plateforme
Flux de données et interactions
- Les actions des utilisateurs (par ex. consultation de page, achat) génèrent des événements envoyés à Kafka
- Les événements sont stockés dans ClickHouse pour permettre l’analyse de données à grande échelle
- Le moteur de segmentation met à jour en temps réel les segments utilisateurs à partir des derniers événements et données
- Les changements de segmentation ou certains événements déclenchent l’orchestration des parcours
- Temporal gère les parcours et exécute des tâches telles que :
- consultation des données utilisateur et de l’historique des événements
- vérification de l’état de segmentation actuel
- déclenchement d’actions externes (par ex. envoi d’e-mails, de notifications push)
- Lors d’actions importantes ou de changements d’état, de nouveaux événements sont générés puis renvoyés dans le système
2 commentaires
Kafka est-il adapté à ce type d’événements à très grand volume ?
Comme on l’utilise parce qu’un traitement asynchrone est nécessaire, n’est-ce pas approprié ?