ปัญหา
Langfuse จำเป็นต้องสร้างสมดุลระหว่างความมุ่งมั่นในด้านโอเพนซอร์สกับโมเดลธุรกิจระบบคลาวด์ที่ยั่งยืน เนื่องจากใครก็สามารถนำซอฟต์แวร์ไปโฮสต์เองได้ฟรี บริการบนระบบคลาวด์ของบริษัทจึงต้องมีราคาที่แข่งขันได้ เข้าใจง่าย และสอดคล้องกับคุณค่าที่ลูกค้าได้รับ ในช่วงแรก Langfuse เริ่มต้นด้วยระบบเรียกเก็บเงินที่สร้างขึ้นเองโดยคิดราคาคงที่ต่อเหตุการณ์ แต่ระบบดังกล่าวไม่สามารถรองรับความยืดหยุ่นด้านราคาและการวัดผลการใช้งานที่แม่นยำตามที่บริษัทต้องการเมื่อธุรกิจขยายตัวขึ้น
เมื่อ Langfuse เติบโตขึ้น บริษัทเล็งเห็นความจำเป็นในการใช้ราคาต่อเหตุการณ์ตามระดับและแพ็กเกจรายเดือนแบบแบ่งระดับ เพื่อให้ค่าบริการปรับเปลี่ยนตามการใช้งานจริงและได้รับส่วนลดตามปริมาณการใช้งาน ลูกค้ามีตั้งแต่บัญชีที่ประมวลผลเหตุการณ์ 100,000 รายการต่อเดือน ไปจนถึงหลายร้อยล้านรายการ ซึ่งแต่ละเหตุการณ์ล้วนมีต้นทุนผันแปรสำหรับ Langfuse บริษัทจึงต้องการระบบส่วนลดตามปริมาณแบบอัตโนมัติ เพื่อให้ค่าบริการปรับเปลี่ยนตามสัดส่วนการใช้งานโดยไม่ต้องมีการเจรจาต่อรองเป็นรายกรณี
ทีมงานยังต้องรับมือกับกรณีพิเศษด้านการเรียกเก็บเงินหลายประการ เช่น บางครั้งการชำระเงินแสดงยอดเป็น 0 ดอลลาร์ เนื่องจากระบบจะเรียกเก็บเงินตามการใช้งานจริงในภายหลัง ซึ่งสร้างความสับสนให้แก่ลูกค้า ส่วนการทดลองใช้ระดับองค์กรนั้นกำหนดให้ต้องกรอกข้อมูลการชำระเงินล่วงหน้า แต่ขั้นตอนการชำระเงินปกติยังไม่รองรับในจุดนี้ นอกจากนี้ การเปลี่ยนแพ็กเกจอาจทำให้รอบการเรียกเก็บเงินปัจจุบันสิ้นสุดลงทันที ส่งผลให้ลูกค้าเสียสิทธิ์ในจำนวนวันที่จ่ายเงินล่วงหน้าไปแล้ว นอกจากนี้ Langfuse ยังต้องการเครื่องมือและการทดสอบที่น่าเชื่อถือสำหรับพฤติกรรมการอัปเกรดหรือดาวน์เกรดที่ซับซ้อน รวมถึงต้องการให้การแจ้งเตือนการใช้จ่ายแสดงเป็นจำนวนเงินดอลลาร์แทนที่จะเป็นจำนวนครั้ง ขณะเดียวกัน บริษัทก็ยังต้องการวิธีการที่เชื่อถือได้ในการกู้คืนรายการชำระเงินที่ล้มเหลวโดยไม่ต้องตามเก็บเงินเองด้วยตนเอง ตลอดจนโซลูชันด้านภาษีและการชำระเงินที่เป็นหนึ่งเดียวทั่วโลกเพื่อให้สามารถเรียกเก็บเงินจากลูกค้าได้ในทุกภูมิภาค
โซลูชัน
เพื่อให้การเรียกเก็บเงินตามการใช้งานมีความน่าเชื่อถือ ปรับขนาดได้ และเชื่อมโยงการใช้งานกับมูลค่า Langfuse จึงนำโมเดลไฮบริดมาใช้ร่วมกับการเรียกเก็บเงินตามการใช้งานของ Stripe Billing ลูกค้าสมัครใช้แพ็กเกจรายเดือนแบบแบ่งระดับ และการเรียกเก็บเงินตามรอบบิลแต่ละรายการจะรวมผลิตภัณฑ์สำหรับการใช้งานที่มีการวัดปริมาณของ Langfuse Cloud แยกต่างหาก ซึ่งจะบันทึกเหตุการณ์ต่างๆ แพ็กเกจแบบแบ่งระดับนี้ตอบสนองความต้องการที่แตกต่างกันของลูกค้า ในขณะที่ผลิตภัณฑ์สำหรับการใช้งานที่มีการวัดปริมาณจะติดตามการรวบรวมข้อมูลเหตุการณ์อย่างสม่ำเสมอในทุกแพ็กเกจ เพื่อให้ราคาปรับเปลี่ยนตามการใช้งาน Langfuse จะส่งจำนวนเหตุการณ์รายชั่วโมงจากแหล่งจัดเก็บข้อมูล ClickHouse/OLAP ของตนไปยัง API การใช้งานที่มีการวัดปริมาณของ Stripe เพื่อให้การเรียกเก็บเงินมีความแม่นยำและมองเห็นข้อมูลได้แบบเกือบเรียลไทม์
ทีมงานเลือกใช้ Stripe Checkout เพื่อสร้างการเรียกเก็บเงินตามรอบบิล และใช้ Billing เพื่อสร้างใบแจ้งหนี้ฉบับเดียวที่มีบรรทัดรายการแยกต่างหาก ได้แก่ ค่าธรรมเนียม SaaS ล่วงหน้า (เรียกเก็บเมื่อเริ่มต้นรอบบิล) และค่าใช้จ่ายตามการใช้งานเมื่อสิ้นสุดรอบบิล วิธีนี้ช่วยขจัดปัญหาเกี่ยวกับการชำระเงินยอด 0 ดอลลาร์และความสับสนของลูกค้า พร้อมทั้งเก็บข้อมูลรายละเอียดการชำระเงินระหว่างลงทะเบียนเพื่อให้สอดคล้องกับข้อกำหนดการจัดซื้อขององค์กร นอกจากนี้ การตั้งกำหนดเวลาการชำระเงินตามรอบบิลและระบบควบคุมการแบ่งชำระตามสัดส่วนของ Stripe ยังช่วยให้ Langfuse ใช้การอัปเกรดได้ทันทีโดยยังนับยอดการใช้งานต่อเนื่อง และตั้งเวลาดาวน์เกรดเพื่อให้ลูกค้ายังใช้งานแบบจ่ายเงินได้จนกว่าจะสิ้นสุดรอบการเรียกเก็บเงินปัจจุบัน
เนื่องจากการแจ้งเตือนแบบเนทีฟไม่ตรงกับความต้องการที่อิงตามสกุลเงินดอลลาร์ของ Langfuse ทีมงานจึงหันมาใช้ฟีเจอร์ดูตัวอย่างใบแจ้งหนี้ของ Stripe เป็นรายชั่วโมงเพื่อคำนวณยอดเงินดอลลาร์สะสม เมื่อยอดการใช้งานของลูกค้าเกินเกณฑ์ที่กำหนด ระบบจะทริกเกอร์การแจ้งเตือนทางอีเมลและในแอปทันที โดยมี Webhook คอยซิงค์ข้อมูลการเรียกเก็บเงินตามรอบบิลและสถานะการชำระเงินเข้ากับผลิตภัณฑ์ของ Langfuse นอกจากนี้ Langfuse ยังได้ซิงค์ข้อมูลของ Stripe กับ BigQuery ผ่าน Airbyte เพื่อนำมาประมวลผลร่วมกับข้อมูลวิเคราะห์ผลิตภัณฑ์ (dbt, Metabase) เพื่อการวิเคราะห์และการกระทบยอด อีกทั้งยังมีเหตุการณ์ Webhook ด้านการดำเนินงานคอยส่งข้อมูลไปยังช่อง Slack เพื่อให้มองเห็นข้อมูลแบบเรียลไทม์
สำหรับการกู้คืนการชำระเงิน Langfuse ใช้ตรรกะการลองใหม่ที่พร้อมใช้งานในตัวและอีเมลติดตามผลของ Stripe แทนการเรียกเก็บเงินด้วยตนเอง ทีมงานตรวจสอบการชำระเงินที่ล้มเหลวในแดชบอร์ดของ Stripe และซิงค์สถานะการเรียกเก็บเงินตามรอบบิล (past_due, ยังไม่ได้ชำระ) ผ่าน Webhook เพื่อแสดงแบนเนอร์ในแอปที่แจ้งเตือนให้ลูกค้าอัปเดตรายละเอียดการชำระเงิน
Langfuse ใช้ Stripe Tax เพื่อจัดการภาษีทั่วโลกร่วมกับแพลตฟอร์มการชำระเงินระดับโลกของ Stripe ซึ่งจะคำนวณภาษีที่เกี่ยวข้อง รองรับวิธีการชำระเงินท้องถิ่น และให้บริการผสานการทำงานระบบเดียวสำหรับการเรียกเก็บเงินข้ามพรมแดน
ผลลัพธ์
ค่าบริการมีความชัดเจนและมอบส่วนลดตามปริมาณโดยอัตโนมัติ
Langfuse ได้นำโมเดลไฮบริดที่ชัดเจนมาใช้ภายในสองสัปดาห์ โดยมีค่าธรรมเนียม SaaS ล่วงหน้าบวกกับการเรียกเก็บเงินตามการใช้งานต่อเหตุการณ์ตามระดับใน Stripe โดยอัตราค่าบริการแบบขั้นบันไดจะถูกนำมาใช้โดยอัตโนมัติเมื่อปริมาณการใช้งานเพิ่มขึ้น ทำให้ไม่จำเป็นต้องเจรจาต่อรองปริมาณการใช้งานเป็นรายกรณีอีกต่อไป
อัปเกรดตามสัดส่วนทันทีในขณะที่ยังคงความต่อเนื่องในการใช้งาน
การใช้กำหนดเวลาการชำระเงินตามรอบบิลและการชำระเงินที่ยืดหยุ่นของ Stripe ทำให้ Langfuse สามารถแบ่งชำระตามสัดส่วนการใช้งานจริงเมื่อมีการอัปเกรดและออกใบแจ้งหนี้ตามสัดส่วนได้ทันที โดยที่ยังคงรักษาข้อมูลการใช้งานสะสมและลำดับขั้นของแพ็กเกจไว้ได้ครบถ้วน ส่วนการดาวน์เกรดแพ็กเกจจะถูกตั้งเวลาให้มีผลเมื่อสิ้นสุดรอบการเรียกเก็บเงิน เพื่อให้ลูกค้ายังคงเข้าถึงฟีเจอร์แบบชำระเงินได้จนถึงเวลานั้น
Stripe จัดการการใช้งานที่มีการวัดปริมาณได้อย่างมีประสิทธิภาพในวงกว้าง
Langfuse ดึงข้อมูลจำนวนเหตุการณ์เป็นรายชั่วโมงเข้าสู่ API การใช้งานที่มีการวัดปริมาณของ Stripe โดยสามารถจัดการเหตุการณ์ได้มากถึง 200 ล้านเหตุการณ์ต่อเดือนสำหรับบัญชีเดียว และหลายร้อยล้านถึงหลายพันล้านเหตุการณ์สำหรับลูกค้าทั้งหมด การใช้งานที่มีการวัดปริมาณช่วยให้มั่นใจได้ว่าการใช้งานจะถูกบันทึกและเรียกเก็บเงินผ่าน Stripe
การแจ้งเตือนการใช้จ่ายที่อิงตามดอลลาร์จะใช้ใบแจ้งหนี้ตัวอย่าง
Langfuse สร้างใบแจ้งหนี้ตัวอย่างเป็นรายชั่วโมงผ่าน Stripe และเปรียบเทียบจำนวนเงินดอลลาร์กับเกณฑ์ที่ผู้ใช้กำหนดค่า ซึ่งจะทริกเกอร์การแจ้งเตือนทางอีเมลและในแอปเมื่อเกินขีดจำกัด Webhook ของ Stripe จะซิงค์ข้อมูลการเรียกเก็บเงินตามรอบบิลและสถานะการชำระเงินสำหรับทีมผลิตภัณฑ์และฝ่ายปฏิบัติการ
เครื่องมือแบบเนทีฟของ Stripe ช่วยลดค่าใช้จ่ายในการบำรุงรักษา
ทีมงานกำลังทยอยเปลี่ยนฟีเจอร์การเรียกเก็บเงินแบบกำหนดเองไปใช้ฟังก์ชันแบบเนทีฟของ Stripe การปรับปรุงระบบแบบครบวงจรครั้งล่าสุดโดยใช้การเรียกเก็บเงินที่ยืดหยุ่นและการใช้งานที่มีการวัดปริมาณของ Stripe ใช้เวลาหนึ่งเดือน
API การเรียกเก็บเงินที่ยืดหยุ่นและการใช้งานที่มีการวัดปริมาณของ Stripe ช่วยให้เราสามารถเรียกเก็บเงินจากเหตุการณ์นับพันล้านรายการได้อย่างน่าเชื่อถือ โดยยังคงใช้ค่าบริการที่เรียบง่ายและสอดคล้องกับมูลค่าอยู่เสมอ