2
วิธีการตรวจสอบว่าข้อความควรเป็นข้อความคำสั่งหรือข้อความเหตุการณ์?
สองรูปแบบรวมกิจการเป็นข้อความคำสั่งและข้อความเหตุการณ์ ฉันกำลังทำงานกับระบบที่เราใช้การส่งข้อความไม่เพียง แต่สำหรับการรวมเข้ากับระบบอื่น ๆ แต่สำหรับการสื่อสารภายในระหว่างบริการ มันควรจะเป็นระบบที่สอดคล้องกันในที่สุดและบริการต่าง ๆ ควรจะไม่รู้ซึ่งกันและกัน (ยกเว้นบริการพิเศษที่มีวัตถุประสงค์เฉพาะสองสามข้อ) เช่นนี้เราพยายามหลีกเลี่ยงสิ่งที่รู้สึกเหมือนการเรียกขั้นตอนระยะไกล (RPC หรือ RPI) เรามีระบบบัสและมิดเดิลแวร์ที่เน้นข้อความและมีการถ่ายทอดข้อความทั้งหมด PurchaseOrderShippedเรามักจะตั้งชื่อข้อความของเราเป็นเหตุการณ์ที่เกิดขึ้นนั่นคือเป็นวลีในที่สมบูรณ์แบบที่ผ่านมาเช่น อย่างไรก็ตามเหตุการณ์มักจะถูกเพิ่มเฉพาะเมื่อบริการอื่น ๆ จำเป็นต้องรู้เกี่ยวกับพวกเขาและในการเริ่มต้นมักจะมีเพียงหนึ่งบริการที่ใส่ใจ ยิ่งไปกว่านั้นบางครั้งบริการก็ส่งเหตุการณ์ออกมาซึ่งเป็นบริการที่รับฟังโดยบริการแรก ดังนั้นถ้าฉันทำแผนภาพการโต้ตอบมันจะดูคล้ายกับแผนภาพสำหรับข้อความคำสั่งในลิงก์ด้านบน (หรือแม้แต่แผนภาพ RPC) มากกว่าข้อความสำหรับข้อความเหตุการณ์ แต่อีกครั้งสิ่งนี้ไม่ได้ถูกนำไปใช้จริง ส่งข้อความโดยตรง แต่ออกอากาศบนรถบัส เพิ่มไปที่ความจริงที่ว่าฉันได้เห็นเมื่อเร็ว ๆ BillShippedPurchaseOrderนี้บางข้อความที่เพิ่มเข้ามาที่มีชื่อเป็นคำสั่งที่เป็นวลีในความจำเป็นที่เช่น สิ่งที่แปลกคือชื่อของข้อความและวิธีที่พวกเขาไหลไม่เปลี่ยนแปลงโดยไม่ว่าจะถูกตั้งชื่อเป็นเหตุการณ์หรือเป็นคำสั่ง ดังนั้นหนึ่งจะกำหนดว่าสิ่งที่ควรเป็นข้อความคำสั่งหรือเหตุการณ์? นี่เป็นเพียงความแตกต่างของความหมายและการตั้งชื่อหรือมีความแตกต่างที่เกิดขึ้นจริงระหว่างคำสั่งและข้อความเหตุการณ์หรือไม่ ระบุว่าข้อความทั้งหมดของเราออกอากาศแล้วนั่นหมายความว่าไม่มีใครเป็นผู้สั่งข้อความอย่างแท้จริงหรือไม่?