I propose to use more structuring of package folders in services. F.e. Order Service has big "domain"-package, that is a heap of different objects of different object types (entities, value objects, domain service, exceptions, repositories, commands, events, event hadlers, event publishers, configs, etc.).
As for me, it was difficult to correlate this one big heap of classes in "domain"-package with hexagonal architecture of service.
I did some rearrangement of packages/folder structure for my local version of FTGO app and it became more undestandable and readable (as for me).
Here is my proposal for folder structure of Order Service sources :
Hello,
I propose to use more structuring of package folders in services. F.e. Order Service has big "domain"-package, that is a heap of different objects of different object types (entities, value objects, domain service, exceptions, repositories, commands, events, event hadlers, event publishers, configs, etc.).
As for me, it was difficult to correlate this one big heap of classes in "domain"-package with hexagonal architecture of service.
I did some rearrangement of packages/folder structure for my local version of FTGO app and it became more undestandable and readable (as for me).
Here is my proposal for folder structure of Order Service sources :
|-- domain | |-- config | |-- exceptions |
-- repositories |-- grpc |-- main |-- messaging | |-- commands | |-- events |
-- sagas | |-- cancelordersaga | |-- createordersaga | |-- reviseordersaga |-- sagaparticipants
-- webhttps://imgur.com/a/4LQL38W
So in root "domain"-folder we have only a few classes (Entities, Value objects and Domain service):
Address.java DeliveryInformation.java LineItemQuantityChange.java Order.java OrderLineItems.java OrderRevision.java OrderService.java PaymentInformation.java Restaurant.java Result.java RevisedOrder.java https://imgur.com/a/dxI7Fmw
Also, commands and events are grouped to corresponding folders under "messaging" folder:
https://imgur.com/a/tmOSPlt
The choice, of course, is up to the Author. I'm just giving my feedback that more detail folder structuring helped me to understand the app better.
Thanks, Andrew