Even more fine-grained decomposition
At this stage, is there any further decomposition that is required and feasible? These days, whether rightfully or otherwise, serverless architecture (specifically, functions as a service) is arguably becoming all the rage. As we pointed out in Chapter 2, Where and How Does DDD Fit?, this means that we may be able to decompose our command side in a manner that each command becomes its own independently deployable unit (hence a bounded context). In other words, LCApplicationSubmitCommand
and the LCApplicationCancelCommand
can be deployed independently.
But just because this is technically possible, should we do it? While it is easy to dismiss this as a passing fad, there may be good reasons to split applications along command boundaries:
- Risk profile: Certain pieces of functionality present a higher risk when changes are made. For example, submitting an LC application may be deemed a lot more critical than the ability to cancel it. However...