Skip to content

Conversation

@wmontwe
Copy link
Member

@wmontwe wmontwe commented Dec 4, 2025

Resolves #10197

@wmontwe wmontwe requested a review from a team as a code owner December 4, 2025 11:02
@wmontwe wmontwe requested a review from asoucar December 4, 2025 11:02
@wmontwe wmontwe requested a review from rafaeltonholo December 4, 2025 11:02
@wmontwe wmontwe requested review from dani-zilla and removed request for asoucar December 4, 2025 11:03
@wmontwe wmontwe changed the title chore(adr): add adr for api internal split chore(adr): add ADR for api internal split Dec 4, 2025
@wmontwe wmontwe force-pushed the chore-adr-api-internal-split branch 2 times, most recently from 847ac40 to b2a404d Compare December 4, 2025 11:53
@wmontwe wmontwe force-pushed the chore-adr-api-internal-split branch from b2a404d to dee53a6 Compare December 4, 2025 12:02
@wmontwe wmontwe added the merge block: soft freeze PR to main is blocked: risky code or feature flag enablement must wait until soft freeze lifts. label Dec 4, 2025
@wmontwe wmontwe changed the title chore(adr): add ADR for api internal split docs(adr): add ADR for api internal split Dec 4, 2025
@wmontwe wmontwe removed the merge block: soft freeze PR to main is blocked: risky code or feature flag enablement must wait until soft freeze lifts. label Dec 5, 2025
Copy link
Member

@rafaeltonholo rafaeltonholo left a 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.

Comment on lines +36 to +40
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).
Copy link
Member

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.

Copy link
Member

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

docs(adr): refine api/impl split into api/internal

4 participants