ขั้นตอนที่ 6 — การเขียน
2.9 ขั้นตอนที่ 6 — การเขียนผลลัพธ์
การเขียนถูกแบ่งระหว่างโฟลว์ซิงโครนัสกับ worker ประมวลผลภายหลังที่รันเบื้องหลัง
การเขียนแบบซิงโครนัส เมื่อใบเสร็จผ่านการตรวจสอบ โฟลว์ซิงโครนัสจะแทรกแถว receipts พร้อมกับบันทึกการสกัดข้อมูลด้วย vision แบบดิบ นี่คือสถานะที่ใช้เสิร์ฟตัวอย่างที่ตรวจสอบแล้ว: ใบเสร็จของผู้ใช้อยู่ในฐานข้อมูลตั้งแต่วินาทีที่ตัวอย่างปรากฏ
การเขียนแบบอะซิงโครนัส จากนั้น worker ประมวลผลภายหลังจะเติมบันทึกให้สมบูรณ์:
receipt_line_items— รายการสินค้าถูกเขียนหลังการแก้ไขสินค้าแบบแคนอนิคอล (2.7) ดังนั้นแต่ละแถวจึงมีการอ้างอิงแคนอนิคอลของตนreceipt_rewards— รายการบัญชีรางวัล รวมถึงรายละเอียดคะแนนที่แสดงให้ผู้ใช้เห็นreceipt_quality— การประเมินคุณภาพที่ชั้นความน่าเชื่อถือ (03) อ่าน
การสังเกตราคา การสังเกตราคาถูกผลิตโดยโฟลว์ price-epoch รายวันที่แยกต่างหาก ซึ่งอ่านใบเสร็จ verified รวมการสังเกตราย epoch และผูกมัดราก epoch บนเชนในชั้นอะซิงโครนัส (01 เฟส B) การสังเกตเหล่านี้สืบเนื่องมาจากแถวใบเสร็จ ไม่ได้ถูกเขียนโดยไพพ์ไลน์ใบเสร็จเอง
โฟลว์ดาวน์สตรีม — การให้คะแนนความน่าเชื่อถือ การชำระรางวัล บัญชีแยกประเภทราคา — อ่านแถวใบเสร็จและคุณภาพโดยตรง การเขียนเป็น idempotent บนตัวระบุใบเสร็จ: ปลอดภัยต่อการเล่นซ้ำในกรณีที่ worker ลองใหม่