Continuing our design journey
Currently, our application resembles the diagram depicted here:
Figure 11.1 – Independent data persistence
The LC Application Processing functionality lives as its own independent component from the rest of the application. It communicates with the monolith through the exchange of domain events using the event bus. It makes use of its own persistence store and exposes HTTP-based APIs that the frontend consumes. Let’s examine whether it is possible to further decompose the application into finer-grained components. The AutoApprovalSaga
component currently lives within the confines of the monolith, but this is mostly an artifact of our previous design as opposed to an intentional design choice. Let’s look at how we can extract this into its own component next.
Saga as a standalone component
Currently, the AutoApprovalSaga
component (discussed in detail in Chapter 8, Implementing Long-Running Workflows...