ได้รับคำสั่ง
ใช้ Commanded เพื่อสร้างแอปพลิเคชัน Elixir ของคุณเองตามรูปแบบ CQRS/ES
ให้การสนับสนุนสำหรับ:
- การลงทะเบียนคำสั่งและการจัดส่ง
- การโฮสต์และการมอบหมายเพื่อการรวมกลุ่ม
- การจัดการเหตุการณ์
- ผู้จัดการกระบวนการที่ทำงานมายาวนาน
Commanded มอบรากฐานทางเทคนิคที่แข็งแกร่งเพื่อให้คุณต่อยอดได้ ช่วยให้คุณมุ่งเน้นไปที่การสร้างแบบจำลองโดเมนของคุณ ซึ่งเป็นส่วนที่สำคัญที่สุดของแอปของคุณ เพื่อสร้างแอปพลิเคชันที่ดีขึ้นและรวดเร็วยิ่งขึ้น
คุณสามารถใช้ Commanded กับหนึ่งในที่เก็บเหตุการณ์ต่อไปนี้เพื่อความคงอยู่:
- EventStore - ไลบรารี Elixir โดยใช้ Postgres เพื่อความคงอยู่
- EventStoreDB - ฐานข้อมูลสตรีมที่สร้างขึ้นสำหรับการจัดหากิจกรรม
- ที่จัดเก็บเหตุการณ์ในหน่วยความจำ - รวมไว้เพื่อใช้ทดสอบเท่านั้น
โปรดดู CHANGELOG สำหรับคุณสมบัติ การแก้ไขข้อบกพร่อง และคำแนะนำในการอัปเกรดที่มีอยู่ในแต่ละรุ่น
ต้องใช้ Erlang/OTP v21.0 และ Elixir v1.11 หรือใหม่กว่า
สปอนเซอร์
- ดูผู้สนับสนุนและผู้สนับสนุน
- บันทึกการเปลี่ยนแปลง
- วิกิ
- CQRS/ES คืออะไร
- คำถามที่พบบ่อย
- การขอความช่วยเหลือ
- แพ็คเกจและเอกสาร Hex ที่เผยแพร่ล่าสุด
ใบอนุญาตเอ็มไอที
README นี้และคำแนะนำต่อไปนี้เป็นไปตามสาขา master
ซึ่งอาจไม่ใช่เวอร์ชันที่เผยแพร่ในปัจจุบัน
อ่านเอกสารประกอบสำหรับ Commanded on Hex เวอร์ชันที่เผยแพร่ล่าสุด
ภาพรวม
- เริ่มต้นใช้งาน
- การเลือกร้านจัดงาน
- EventStore ที่ใช้ PostgreSQL
- ร้านจัดงานของ Greg Young
- การใช้คำสั่ง
- มวลรวม
- ตัวอย่างการรวม
-
Commanded.Aggregate.Multi
- รวมภาพสถานะ
- คำสั่ง
- ตัวจัดการคำสั่ง
- การส่งคำสั่งและการกำหนดเส้นทาง
- กำหนดเอกลักษณ์รวม
- การลงทะเบียนหลายคำสั่ง
- หมดเวลาจัดส่ง
- รับประกันความสม่ำเสมอในการจัดส่ง
- จัดส่งส่งคืนผลการดำเนินการ
- อายุขัยรวม
- เราเตอร์คำสั่งคอมโพสิต
- มิดเดิลแวร์
- เราเตอร์คำสั่งคอมโพสิต
- กิจกรรม
- กิจกรรมโดเมน
- ตัวจัดการเหตุการณ์
- เหตุการณ์อัปมงคล
- ผู้จัดการกระบวนการ
- ตัวจัดการกระบวนการตัวอย่าง
- การกำกับดูแล
- การทำให้เป็นอนุกรม
- ตัวสร้างอนุกรม JSON เริ่มต้น
- การกำหนดค่าการทำให้เป็นอนุกรม JSON
- โครงสร้างเหตุการณ์การถอดรหัส
- การใช้รูปแบบการทำให้เป็นอนุกรมทางเลือก
- การปรับแต่งการทำให้เป็นอนุกรม
- อ่านการฉายภาพแบบจำลอง
- การปรับใช้
- การปรับใช้โหนดเดียว
- การปรับใช้คลัสเตอร์หลายโหนด
- มัลติโหนด แต่ไม่ใช่การใช้งานแบบคลัสเตอร์
- การทดสอบด้วยคำสั่ง
- ใช้ในการผลิต?
- ตัวอย่างการใช้งาน
- เรียนรู้คำสั่งใน 20 นาที
- การเลือกผู้ให้บริการร้านจัดงาน
- เครื่องมือ
- มีส่วนร่วม
- ต้องการความช่วยเหลือ?
ใช้ในการผลิต?
ใช่ ดูบริษัทที่ใช้ Commanded
ตัวอย่างการใช้งาน
Conduit เป็นโอเพ่นซอร์ส ตัวอย่างเว็บแอปพลิเคชัน Phoenix 1.3 ที่ใช้รูปแบบ CQRS/ES ใน Elixir สร้างขึ้นเพื่อสาธิตการใช้งาน Commanded ในแอปพลิเคชัน Elixir สำหรับหนังสือ Building Conduit
เรียนรู้คำสั่งใน 20 นาที
ชม Bernardo Amorim แนะนำ CQRS และการจัดหากิจกรรมที่ Code Beam SF 2018 รวมถึงบทช่วยสอนเกี่ยวกับวิธีการใช้งานแอปพลิเคชัน Elixir โดยใช้แนวคิดเหล่านี้ด้วย Commanded
มีส่วนร่วม
เรายินดีรับคำขอดึงเพื่อสนับสนุนฟีเจอร์ใหม่หรือที่ได้รับการปรับปรุง และขยายเอกสารประกอบ
โปรดปฏิบัติตามแบบแผนการเขียนโค้ดที่มีอยู่ หรืออ้างอิงถึงคำแนะนำสไตล์ Elixir
คุณควรรวมการทดสอบหน่วยเพื่อให้ครอบคลุมการเปลี่ยนแปลงใดๆ เรียกใช้ mix test
เพื่อดำเนินการชุดการทดสอบ
ผู้ร่วมให้ข้อมูล
Commanded ต้องขอบคุณบุคคลต่อไปนี้ที่มีส่วนร่วม
- อาดิล ยารูลิน
- อเล็กซานเดร เดอ ซูซ่า
- อันเดรย์ อาคูลอฟ
- อันเดรจ สลิวา
- เบน สมิธ
- เบนจามิน มอส
- เบอร์นาร์โด อโมริม
- เบรนตัน อันแนน
- คริส บรอดท์
- คริส มาร์ติน
- คริสตอฟ จูเนียต
- ดานิโล ซิลวา
- เดฟ ลูเซีย
- เดวิด คาร์ลิน
- ดามีร์ วานดิช
- แดนนี ฟรีดแลนด์
- ดิลักษ์สัน บาวาราชัน
- เออร์เนสโต
- เฟร์นานโด เมนเดส
- ฟลอเรียน เอเบลิง
- เฮนรี่ ฮาซาน
- เจซี
- โจน ซาปาต้า
- เจา กิลแบร์โต้ มูร่า
- เจา ทาลลิส
- จอห์น วิลเกอร์
- โจเซฟ โลซาโน
- เกียนเม้งอัง
- ก๊ก เจ แซม
- ลีฟ เกนเซิร์ต
- หลุยส์ เฟอร์เรร่า
- มาร์เซโล โดมิงเกซ
- แมตต์ โดตี้
- แมทธิว โบห์ลิก
- ไมเคิล เฮโรลด์
- มิเกล ปาลฮาส
- ไนเจล ธอร์น
- โอลาฟูร์ อาราซอน
- เปาโล ลอเรนติ
- แพทริค เดตเลฟเซ่น
- ฟิล เฉิน
- ราฟาเอล ลุสติน
- ชเตฟาน จุปตัก
- โทเบียสซ์ มาเลคกี
- วลาดิมีร์ โดรบีเชฟสกี้
- วิลลี่ วอมแบต
- ยอร์ดิส ปรีเอโต
- ยูริ เด ฟิเกเรโด
- สเวน
ต้องการความช่วยเหลือ?
โปรดเปิดปัญหาหากคุณประสบปัญหาหรือต้องการความช่วยเหลือ คุณยังสามารถขอความช่วยเหลือได้ในช่อง #commanded ใน Elixir Slack อย่างเป็นทางการ