-
-
Notifications
You must be signed in to change notification settings - Fork 2.7k
docs(adr): add ADR for api internal split #10198
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
847ac40 to
b2a404d
Compare
b2a404d to
dee53a6
Compare
rafaeltonholo
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. Thanks for creating this ADR! I've left a few comments, but I'm fine with what is already described.
| Put only stable, intentionally shared contracts in `api`: | ||
| - Public interfaces and abstractions other features depend on (e.g., repositories, use cases, service interfaces). | ||
| - Data contracts exchanged across features (DTOs/value objects). | ||
| - Navigation contracts and events that other features can trigger/observe. | ||
| - DI entry points/interfaces needed by composition modules (`:app-common`, app modules). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There are a few cases where we might need to expose UI implementations on the api module (e.g.: :feature:notification:api, :core:ui:compose:designsystem:api).
Unless we start using fun interfaces implementations and koin injection inside the Composables which uses these shared ui implementations, I believe we should include this exception here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Another option could be having an api-ui or ui-api module for these cases.
Resolves #10197