Decomposing the frontend
Thus far, we have focused on decomposing and distributing the backend components while keeping the frontend untouched as part of the existing monolithic system. It is worth considering breaking down the frontend to align it more closely along functional boundaries. Patterns such as micro-frontends (https://micro-frontends.org/, https://martinfowler.com/articles/micro-frontends.html) extend the concepts of microservices to the frontend. Micro-frontends promote team structures to support end-to-end ownership of a set of features. It is conceivable that a cross-functional, polyglot team owns both the experience (frontend) and the business logic (backend) functions, eliminating communication overheads drastically (along the lines of the vertical slice architecture conversation, as discussed in Chapter 2, Where and How Does DDD Fit?). Even if such a team organization where the frontend and backend are one team is not feasible in your current ecosystem, this approach...