2
การจัดการภาวะพร้อมกัน ES / CQRS
ฉันเพิ่งเริ่มดำน้ำใน CQRS / ES เพราะฉันอาจจำเป็นต้องใช้มันในที่ทำงาน ดูเหมือนว่าจะมีแนวโน้มมากในกรณีของเราเพราะมันจะแก้ปัญหาได้มากมาย ฉันร่างความเข้าใจคร่าวๆว่าแอพ ES / CQRS ควรมีลักษณะเป็นบริบทอย่างไรในกรณีการใช้งานธนาคารที่เรียบง่าย (ถอนเงิน) เพื่อสรุปหากบุคคล A ถอนเงิน: ออกคำสั่ง คำสั่งถูกมอบให้สำหรับการตรวจสอบ / การตรวจสอบ เหตุการณ์ถูกส่งไปยังที่เก็บเหตุการณ์หากการตรวจสอบความถูกต้องสำเร็จ ผู้รวบรวมจะ dequeues เหตุการณ์เพื่อใช้การแก้ไขกับการรวม จากสิ่งที่ฉันเข้าใจบันทึกเหตุการณ์เป็นที่มาของความจริงเนื่องจากมันเป็นบันทึกของข้อเท็จจริงเราก็จะสามารถประมาณการภาพใด ๆ ออกมาได้ ตอนนี้สิ่งที่ฉันไม่เข้าใจในสิ่งที่ยิ่งใหญ่นี้คือสิ่งที่เกิดขึ้นในกรณีนี้: กฎ: ยอดคงเหลือต้องไม่ติดลบ person A มียอดคงเหลือ 100e person A ทำการถอนคำสั่งจาก 100e ผ่านการตรวจสอบและ MoneyWithdrewEvent 100e เหตุการณ์ ในระหว่างนี้บุคคล A ออกการถอนคำสั่งอีก 100e MoneyWithdrewEvent ตัวแรกไม่ได้รับการรวบรวม แต่ยังผ่านการตรวจสอบเนื่องจากการตรวจสอบการตรวจสอบกับการรวม (ที่ยังไม่ได้รับการปรับปรุง) MoneyWithdrewEvent …