Skip to content

chore(): add adr for the code architecture#22

Open
brandPittCode wants to merge 8 commits intomainfrom
chore/adr-for-code-architecture
Open

chore(): add adr for the code architecture#22
brandPittCode wants to merge 8 commits intomainfrom
chore/adr-for-code-architecture

Conversation

@brandPittCode
Copy link
Copy Markdown
Collaborator

@brandPittCode brandPittCode commented Apr 10, 2026

PR Description

What this PR Provides

This pull request introduces a new Architecture Decision Record (ADR) that documents and justifies the adoption of a "Pragmatic Hexagonal Architecture" for the IDP Core project. The ADR outlines the reasoning, pros and cons, and structural implications of this architectural pattern, aiming to balance maintainability, testability, developer velocity, and open-source friendliness.

Documentation: Code Architecture Pattern

  • Added a new ADR (docs/src/contributing/adrs/0002-code-architecture-pattern.md) that:
    • Proposes and explains the choice of Pragmatic Hexagonal Architecture (Ports and Adapters with Spring annotations) over a traditional MVC (Layered) approach, focusing on maintainability, testability, and ease of contribution for open-source developers.
    • Details the folder structure, decision drivers, and consequences (both positive and negative) of the chosen architecture.
    • Compares the pros and cons of Hexagonal Architecture versus MVC, emphasizing the benefits for modularity, protocol independence, and community contributions.
    • Sets out boundaries for the domain layer, such as prohibiting third-party integration libraries and enforcing port-based contracts.

Vale Style Vocabulary Update

  • Extended the .vale/styles/config/vocabularies/IDP/accept.txt list to include new project-specific terms: Matthieu, Renny, Pluggability, and DTOs, ensuring these are accepted in documentation and ADRs.

Fixes

Review

The reviewer must double-check these points:

  • The reviewer has tested the feature
  • The reviewer has reviewed the implementation of the feature
  • The documentation has been updated
  • The feature implementation respects the Technical Doc / ADR previously produced
  • The Pull Request title has a ! after the type/scope to identify the breaking
    change in the release note and ensure we will release a major version.

How to test

  • N/A

Breaking changes (if any)

  • N/A

Context of the Breaking Change

  • N/A

Result of the Breaking Change

  • N/A

@brandPittCode brandPittCode marked this pull request as ready for review April 13, 2026 09:43
@brandPittCode brandPittCode changed the title chore(): add adr for the system's code architecture chore(): add adr for the code architecture Apr 13, 2026

* **Maintainability:** Clear separation between business rules and infrastructure logic.
* **Testability:** High confidence in core logic through fast, isolated unit tests.
* **Developer Velocity (Pragmatism):** Reducing boilerplate by allowing Spring Boot 4's dependency injection and transaction management within the domain.
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please review the decisions drivers : there are your inputs for decision, not based on the decision outcome


## Considered Options

1. **Pragmatic Hexagonal Architecture (Ports and Adapters with Spring annotations)**
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Option 3: State-of-the-Art hexagonal architecture ?

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.

2 participants