11 คะแนน โดย xguru 2024-12-07 | 2 ความคิดเห็น | แชร์ทาง WhatsApp
  • แพลตฟอร์ม customer engagement แบบโอเพนซอร์สที่ขับเคลื่อนด้วย AI ช่วยให้สามารถใช้ข้อมูลเพื่อออกแบบเส้นทางผู้ใช้แบบเฉพาะบุคคลในวงกว้างได้
    • ทางเลือกโอเพนซอร์สแทน Customer.io
  • ปัญหาของเครื่องมือเดิม: ค่าใช้จ่ายสูง และมีความยากในการต้องเปลี่ยน communication stack เดิมทั้งหมด
  • LimeJourney ถูกออกแบบโดยยึดตามหลักการ 2 ข้อดังนี้:
    • การเข้าถึงแบบโอเพนซอร์ส: นักพัฒนาและทีมขนาดเล็กสามารถใช้งานได้ฟรี หากต้องการโซลูชันแบบ managed ก็มีเวอร์ชันคลาวด์ให้ด้วย
    • รองรับการเชื่อมต่อกับของเดิม (BYOI): รองรับการเชื่อมต่อกับเครื่องมือเดิม โดยไม่จำเป็นต้องเปลี่ยนทั้งสแตก

ฟีเจอร์หลัก

  • ข้อมูลเชิงลึกจาก AI: ใช้โมเดล AI เพื่อช่วยทำความเข้าใจลูกค้า
  • Visual Journey Builder: สร้างเส้นทางผู้ใช้ที่ซับซ้อนได้ด้วยอินเทอร์เฟซ drag-and-drop ที่ใช้งานง่าย
  • การแบ่งเซกเมนต์แบบไดนามิก: สามารถสร้างเซกเมนต์ตามอีเวนต์หรือคุณสมบัติของผู้ใช้ได้
    • ตัวอย่าง: "ผู้ใช้ที่ไม่ได้ซื้อสินค้าในช่วง 30 วันที่ผ่านมา"
  • ความสามารถด้านการเชื่อมต่อ: เชื่อมต่อกับเครื่องมือและบริการเดิมได้ และกำลังเพิ่มความสามารถด้านการเชื่อมต่อสำหรับการเก็บข้อมูลอย่างต่อเนื่อง

เทคโนโลยีสแตกของ LimeJourney

  • แอปพลิเคชันแบบ full-stack monorepo (เขียนด้วย TypeScript)
  • เทคโนโลยีหลัก:
    • Turbo: จัดการ monorepo
    • Next.js: พัฒนาเว็บแอป
    • TailwindCSS: จัดการสไตล์
    • Express: พัฒนา API
    • TSOA: สร้างเส้นทาง API และเอกสาร OpenAPI
    • PostgreSQL: ที่เก็บข้อมูลหลัก
    • Redis: ที่เก็บข้อมูลแบบ KV สำหรับจัดการการแมป Journey-Trigger
    • ClickHouse: จัดการข้อมูล event/entity ขนาดใหญ่และการแบ่งเซกเมนต์แบบเรียลไทม์
    • Temporal: รันเส้นทางที่สร้างจาก Visual Journey Builder
    • Kafka: event bus ส่วนกลาง (โฮสต์บน Upstash)

สถาปัตยกรรมแบ็กเอนด์

องค์ประกอบหลัก

  • แกนหลักสำหรับ event streaming (บน Kafka)
    • ประมวลผลอีเวนต์ของผู้ใช้และระบบได้อย่างรวดเร็ว
    • รองรับการสื่อสารแบบอะซิงโครนัสระหว่างโมดูลภายในระบบ
    • มอบความสอดคล้องของข้อมูลและความสามารถในการเล่นซ้ำผ่าน event sourcing
  • เอนจินการแบ่งเซกเมนต์แบบเรียลไทม์
    • ใช้ความสามารถด้านคิวรีประสิทธิภาพสูงของ ClickHouse
    • สร้างเซกเมนต์แบบไดนามิกตามคุณสมบัติและพฤติกรรมของผู้ใช้
    • คำนวณเซกเมนต์ได้รวดเร็วแม้ในสเกลขนาดใหญ่
  • Journey orchestration
    • จัดการเส้นทางผู้ใช้ที่ซับซ้อนด้วย Temporal
    • รับประกันความน่าเชื่อถือของเวิร์กโฟลว์ และกู้คืนได้เมื่อเกิดความล้มเหลว
    • รองรับการหยุดชั่วคราว ดำเนินการต่อ และแก้ไขเส้นทาง
  • การจัดการเอนทิตี
    • จัดการโปรไฟล์ผู้ใช้และคุณสมบัติต่าง ๆ
    • เผยแพร่อีเวนต์เมื่อมีการเปลี่ยนแปลงเอนทิตี
    • ให้ข้อมูลผู้ใช้แบบรวมศูนย์ที่ใช้ร่วมกันได้ทั้งแพลตฟอร์ม

การไหลของข้อมูลและการทำงานร่วมกัน

  1. พฤติกรรมของผู้ใช้ (เช่น การดูหน้าเว็บ การซื้อ) จะสร้างอีเวนต์และส่งไปยัง Kafka
  2. อีเวนต์จะถูกจัดเก็บใน ClickHouse เพื่อรองรับการวิเคราะห์ข้อมูลขนาดใหญ่
  3. เอนจินการแบ่งเซกเมนต์จะอัปเดตเซกเมนต์ผู้ใช้แบบเรียลไทม์โดยอิงจากอีเวนต์และข้อมูลล่าสุด
  4. การเปลี่ยนแปลงของเซกเมนต์หรืออีเวนต์บางประเภทจะทริกเกอร์ journey orchestration
  5. Temporal จะจัดการเส้นทางและดำเนินงานดังต่อไปนี้:
  • เรียกดูข้อมูลผู้ใช้และประวัติอีเวนต์
  • ตรวจสอบสถานะการแบ่งเซกเมนต์ปัจจุบัน
  • ทริกเกอร์งานภายนอก (เช่น ส่งอีเมล ส่งการแจ้งเตือนแบบพุช)
  1. เมื่อมีงานสำคัญหรือสถานะเปลี่ยนแปลง จะสร้างอีเวนต์ใหม่และส่งกลับเข้าสู่ระบบอีกครั้ง

2 ความคิดเห็น

 
kandk 2024-12-09

kafka เหมาะกับอีเวนต์ปริมาณมากแบบนี้ไหม?

 
yangeok 2024-12-16

เพราะใช้เนื่องจากต้องการการประมวลผลแบบอะซิงโครนัส แบบนี้ก็น่าจะเหมาะสมไม่ใช่หรือ?