Skip to content

Compare Hexagonal to Layered#2

Open
tibtof wants to merge 9 commits intolayeredfrom
hexagonal
Open

Compare Hexagonal to Layered#2
tibtof wants to merge 9 commits intolayeredfrom
hexagonal

Conversation

@tibtof
Copy link
Owner

@tibtof tibtof commented Sep 9, 2025

No description provided.

@tibtof tibtof requested a review from Copilot September 9, 2025 07:09
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR refactors a Spring Boot application from a layered architecture to a hexagonal architecture approach. The refactoring introduces domain-centric design with proper separation of concerns and dependency inversion.

  • Moves business logic to a domain layer with pure Java classes (TransactionCategorizer, Transaction, CategorizedTransaction)
  • Introduces port/adapter pattern with interfaces in the domain and implementations in infrastructure layers
  • Reorganizes packages by architectural concerns (domain, jpa, kafka, merchantdirectory, controller) rather than technical layers

Reviewed Changes

Copilot reviewed 29 out of 30 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
src/main/java/fun/vs/fw/demo/domain/TransactionCategorizer.java Core business logic for transaction categorization moved to domain
src/main/java/fun/vs/fw/demo/domain/Transaction.java Domain entity with value objects and business rules
src/main/java/fun/vs/fw/demo/domain/CategorizedTransactionPorts.java Port interfaces defining contracts for persistence operations
src/main/java/fun/vs/fw/demo/jpa/CategorizedTransactionRepositoryAdapter.java JPA adapter implementing domain ports
src/main/java/fun/vs/fw/demo/kafka/TransactionKafkaListener.java Kafka listener moved to dedicated package
src/main/java/fun/vs/fw/demo/merchantdirectory/MerchantDirectoryAdapter.java External service adapter with domain interface
src/test/java/fun/vs/fw/demo/HexagonalArchitectureTest.java Architecture tests enforcing hexagonal constraints
src/test/java/fun/vs/fw/demo/domain/TransactionCategorizerTest.java Domain unit tests with dependency injection

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

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