เพิ่งเสร็จสิ้นโครงการสำหรับจัดการการประมวลผลบัตรเครดิต หนึ่งในปัญหาที่ฉันเผชิญคือการจัดการความล่าช้า / ความล้มเหลวที่เป็นไปได้ของข้อความแจ้งเตือน ตัวอย่างที่ซับซ้อนที่สุดคือ:
- ระบบภายนอกส่งการร้องขอการชำระเงิน
- ระบบของฉันเปลี่ยนคำขอนั้นเป็นคำขอไปยังเกตเวย์การชำระเงิน
- ส่งผู้ใช้ไปยังเกตเวย์
- รอให้ผู้ใช้ชำระเงิน
- ผู้ใช้กลับไปที่ระบบของฉัน แต่ถูกระงับจนกระทั่งระบบได้รับการแจ้งเตือนของความสำเร็จ / ความล้มเหลว
- การส่งผู้ใช้กลับไปยังระบบภายนอกขึ้นอยู่กับความล้มเหลว
ยิ่งยากขึ้นคือความจริงที่ว่าเมื่อล้มเหลวในการส่งการแจ้งเตือนเกตเวย์จะพยายามส่งการแจ้งเตือนทุก ๆ 15 นาทีเป็นเวลาหลายชั่วโมง
ฉันแก้ไขมันโดยใช้บันทึกฐานข้อมูลของธุรกรรมที่ค้างอยู่จากนั้นตรวจสอบความสำเร็จและความล้มเหลวจากการส่งคืนรวมทั้งฟังการหน่วงเวลาสำหรับการแจ้งเตือนและการจัดการธุรกรรม ...
ยากพอสมควร!
แต่สิ่งนี้จะต้องได้รับการแก้ไขเป็นพันล้านครั้งก่อนดังนั้นวิธีปฏิบัติที่ดีที่สุดคืออะไร?
ฉันสามารถเห็นอนาคตของฉันกำลังจะเขียนการจัดการระหว่างระบบทั้งหมดเหล่านี้และการจัดการความล่าช้าของเวลาและความล้มเหลวของเครือข่ายที่เป็นไปได้ดังนั้นฉันจึงต้องการปฏิบัติตามแนวทางปฏิบัติที่ดีที่สุด
คำแนะนำหนังสือ / บทความจะดีมาก
ขอบคุณล่วงหน้า!