Skip to content

1

1. Tại sao Payment cần DomainService?

Trong service Payment, bạn có PaymentDomainService để điều phối giữa 3 Aggregate khác nhau: Transaction,Subscription, và Plan. * Sự phối hợp phức tạp: Khi một Transaction thành công, nó cần kích hoạt (activate) một Subscription dựa trên thông tin từ Plan. * Logic không thuộc về Aggregate nào đơn lẻ: Việc tính toán ngày hết hạn của Subscription dựa trên Plan sau khi Transaction thành công là logic nghiệp vụ liên quan đến nhiều bên. Nếu đặt logic này vào Transaction thì nó biết quá nhiều về Subscription, và ngược lại.