Change does not come about by itself, it comes from a problem area. A problem area is an area where problems that require changes in code are formulated in the same language, using the same set of concepts or related business logic. Correspondingly, there will most likely be one set of restrictions, invariants that you can rely on when writing the code, within one problem area.
Separation of service responsibility by problem areas rather than by essence usually leads to a more supported and understandable architecture. Problem areas most often correspond to business processes. For an online store, the most likely problem areas will be "payment and billing", "delivery", "ordering process".
Changes that would affect several problem areas simultaneously are less than changes that would affect several entities.
In addition, services broken down by business processes can be reused in the future. For example, if we wanted to sell airplane tickets next to an online store, we could reuse t