一般问题
作者: leonardolb创建于 2025年6月14日更新于 2025年10月25日
您好! 我应该如何处理以下场景: 1) 用户想创建会议。要创建会议,用户必须有有效的订阅。我应该如何实现此逻辑,因为订阅和会议分属不同模块? 我是否应该在订阅模块中暴露一个 CheckActiveSubscriptionIntegrationEvent? 2) 让我们假设当用户创建会议时,用户应该自动被收取一小笔预订费用,并且用户必须有信用额度。我应该如何实现此逻辑? 我曾想过上述流程,但我不知道如何处理验证。 1) 会议模块验证会议创建(假设验证用户是否被允许,以及同一天是否没有其他活动); 2) 如果验证通过,运行一个 CreateBillingToUserIntegrationEvent(支付模块); 3) CreateBillingToUserIntegrationEvent 应验证是否有信用额度。如果有,则创建收费,如果没有,则返回验证错误; 4) 如果出现错误,则回滚。 我的疑虑: 1) 似乎不太高效,因为会议会被发布到数据库,如果 CreateBillingToUserIntegrationEvent 运行出错,则会回滚; 2) 在"会议模块"中实现"信用额度验证规则"似乎不正确,因为这是一个支付规则。
内容来源: kgrzybek/modular-monolith-with-ddd