ขั้นตอนที่ 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 ลองใหม่