Command Bus VS Service Layer

Command bus thật chất chính là service layer nhưng được implement cung cấp thêm các tính năng để giải quyết các điểm yếu của service layer

Command Bus Service Layer
Chung 1 Interface Mỗi service có 1 interface riêng, gần như không có gì chung
Với việc tất cả đều được thực hiện chung 1 interface cho ta khả năng wrap 1 hành động nào trước khi thực hiện 1 Command, như start 1 transaction, validator… Lưu ý: điều này rất quan trọng, tất cả việc thực hiện trong 1 command chỉ nên trong 1 transaction. -khó có thể thêm được phần nào phía trước hay phía sau
1 Command chỉ thực hiện 1 việc, có 1 nhiệm vụ riêng, tăng tính SRP 1 Service thường thực hiện nhiều việc, dễ phụ thuộc vào nhiều domain điều này thường dẫn tới vi phạm tính SRP trong lập trình, cũng như nguyên tắc Open/Close
Hệ thống làm việc thông qua các command, tăng tính Hexagon của hệ thống (1 code có thể được dùng với nhiều endpoint) dễ tiếp cận theo hướng microservice
Advertisements