General questions
Hi! I should I handle the following scenarios
a) User wants to create a Meeting. To create a meeting, user must have an active subscription. How should I implement this logic as Subscription and Meeting are in different modules? Should I expose in subscription module an CheckActiveSubscriptionIntegrationEvent in subscription modulo?
b) Lets says that when an user create a Meeting, user should be automatically billed a small booking fee and user must have credits.How should i implement this logic? I thought the workflow above but I don't know how to handle validations. 1) Meeting module validate Meeting creation (lets say, validate if user is allowed and if there isn't any other event in same date); 2) If valid, run an CreateBillingToUserIntegrationEvent (Payment module) 3) CreateBillingToUserIntegrationEvent should validate if there are credits. if so, create billing, if not, return an validation error; 4) If errors, rollback;
My concerns: - It seems not too efficient as meeting would be posted to db and rolled back if CreateBillingToUserIntegrationEvent runs an error; - Implementing "credit validation rule" in "meeting module" seems wrong as this is an payment rule .
thanks!
Source: kgrzybek/modular-monolith-with-ddd