แอปพลิเคชันตัวอย่างนี้สาธิตระบบปฏิบัติตามคำสั่งซื้ออย่างง่าย ซึ่งแบ่งออกเป็นองค์ประกอบอิสระหลายส่วน (เช่น ไมโครเซอร์วิส )
พื้นที่เก็บข้อมูลประกอบด้วยโค้ดสำหรับทางเลือกในการใช้งานหลายแบบเพื่อให้ผู้ชมในวงกว้างเข้าใจโค้ดและเปรียบเทียบทางเลือกอื่น ๆ ตารางด้านล่างแสดงรายการทางเลือกเหล่านี้
ตัวอย่างนี้คำนึงถึงการเรียนรู้จาก Domain Driven Design (DDD) , Event Driven Architecture (EDA) และ Microservices (µS) และได้รับการออกแบบมาเพื่อให้คุณเข้าถึงหัวข้อเหล่านี้ได้โดยตรง
หมายเหตุ: รหัสนี้เขียนขึ้นเพื่ออธิบาย ดังนั้นฉันจึงชอบโค้ดแบบง่ายหรือคัดลอกและวางแทนโค้ดที่พร้อมใช้งานจริงด้วยโซลูชันทั่วไป อย่าพิจารณาแนวทางปฏิบัติที่ดีที่สุดของรูปแบบการเขียนโค้ด! มีวัตถุประสงค์เพื่อเขียนโค้ดให้เป็นโค้ดที่อธิบายได้ง่าย
คุณสามารถหาข้อมูลเพิ่มเติมเกี่ยวกับแนวคิดนี้ได้ในหนังสือ Practical Process Automation ของ O'Reilly
Flowing Retail จำลองระบบปฏิบัติตามคำสั่งซื้อที่ง่ายมาก:
ทางเลือกพื้นฐานที่สุดคือการเลือก กลไกการสื่อสาร :
หลังจากกลไกการสื่อสาร ตัวเลือกถัดไปคือ กลไกเวิร์กโฟลว์ :
และ ภาษาโปรแกรม :
การค้าปลีกที่ไหลลื่นจำลองระบบปฏิบัติตามคำสั่งซื้อที่ง่ายมาก ตรรกะทางธุรกิจถูกแยกออกเป็นบริการที่แสดงด้านบน (แสดงเป็นแผนผังบริบท)
บริการบางอย่างมีลักษณะเป็นบริการ ที่ยาวนาน เช่น บริการชำระเงินขอให้ลูกค้าอัปเดตบัตรเครดิตที่หมดอายุ กลไกจัดการเวิร์กโฟลว์ถูกใช้เพื่อคงอยู่และควบคุมการโต้ตอบที่ใช้เวลานานเหล่านี้
โปรดทราบว่าเครื่องสถานะ ( หรือกลไกเวิร์กโฟลว์ในกรณีนี้ ) เป็นไลบรารีที่ใช้ ใน บริการเดียว หากบริการต่างๆ ต้องการกลไกเวิร์กโฟลว์ ก็สามารถเรียกใช้กลไกใดก็ได้ที่ต้องการ วิธีนี้จะทำให้ทีมตัดสินใจโดยอิสระว่าพวกเขาต้องการใช้เฟรมเวิร์กหรือไม่ และอันไหน: