API module contains all logic to expose functionality through REST API endpoints.
Logic is separated by domains:
- com.cmc.kickstart.api.account (contains account related logic)
- com.cmc.kickstart.api.customer (contains customer related logic)
- com.cmc.kickstart.api.queue (contains queue related logic)
Domain packages should not share logic between each other. For example code from account domain should not call services and repositories from customer domain and vice versa. If customer need to access account data a new account repository should be created in customer domain. All shared logic should go outside domain packages inside shared libraries (e.g core module). This will make easy splitting api project into separate microservices in the feature.