Skip to content
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

Vertical slice architecture #2373

Open
iluwatar opened this issue Dec 2, 2022 · 12 comments
Open

Vertical slice architecture #2373

iluwatar opened this issue Dec 2, 2022 · 12 comments

Comments

@iluwatar
Copy link
Owner

iluwatar commented Dec 2, 2022

Description:
The Vertical Slice Architecture (VSA) design pattern focuses on organizing code by features rather than layers, promoting a more modular, maintainable, and scalable architecture. This approach ensures that each vertical slice contains all necessary components, such as data access, business logic, and user interface, which are isolated from other slices.

Main elements of the Vertical Slice Architecture include:

  • Feature-based Structure: Each feature is a self-contained module with its own domain logic, data access, and user interface.
  • Single Responsibility: Each slice is responsible for one specific functionality or feature, reducing dependencies between different parts of the application.
  • Encapsulation: Each slice encapsulates its logic, making the application more modular and easier to test.
  • CQRS (Command Query Responsibility Segregation): Often used in conjunction with VSA to separate read and write operations, enhancing performance and scalability.

References:

Acceptance Criteria:

  1. Implement a new feature using the Vertical Slice Architecture pattern, ensuring it includes all necessary components (domain logic, data access, user interface) within the slice.
  2. Ensure the feature follows the single responsibility principle, isolating its functionality from other parts of the application.
  3. Provide documentation and examples within the codebase to illustrate how the Vertical Slice Architecture is implemented and how it benefits the overall project structure.
@thestbar
Copy link
Contributor

I would like to start working on this new pattern! Could you please assign it to me?

@stale
Copy link

stale bot commented Sep 18, 2023

This issue has been automatically marked as stale because it has not had recent activity. The issue will be unassigned if no further activity occurs. Thank you for your contributions.

@stale stale bot added the status: stale issues and pull requests that have not had recent interaction label Sep 18, 2023
@sugan0tech
Copy link
Contributor

@stale stale bot removed the status: stale issues and pull requests that have not had recent interaction label Sep 30, 2023
@sugan0tech
Copy link
Contributor

@thestbar may I know the status of this epic?

@iluwatar
Copy link
Owner Author

iluwatar commented Oct 1, 2023

@iluwatar more over like this right? https://medium.com/sahibinden-technology/package-by-layer-vs-package-by-feature-7e89cde2ae3a

Exactly. If @thestbar is not working on it, I'll assign to you.

@thestbar
Copy link
Contributor

thestbar commented Oct 1, 2023

@thestbar may I know the status of this epic?

Have done some little stuff but didn't have the time to finish it lately. @iluwatar feel free to assign it to @sugan0tech.

sugan0tech added a commit to sugan0tech/java-design-patterns that referenced this issue Oct 2, 2023
@iluwatar iluwatar assigned sugan0tech and unassigned thestbar Oct 4, 2023
@damlaYasarr
Copy link

if no one solves this, can you assign it to me?

@sugan0tech
Copy link
Contributor

@damlaYasarr I already made a PR, waiting for his review.

@sugan0tech
Copy link
Contributor

@iluwatar I have made the PR,can you check it out?

@damlaYasarr
Copy link

damlaYasarr commented Oct 8, 2023

@sugan0tech I have a question. I want to code facade design but I cant install mvn package. I mean , I created mvn project but which architecture that I have to choose?

@sugan0tech
Copy link
Contributor

sugan0tech commented Oct 8, 2023

@sugan0tech I have a question. I want to code facade design but I cant install mvn package. I mean , I created mvn project but which architecture that I have to choose?

You can use an architecture that you think fits well with it. Also, have some reference in other patterns and code changes in PR's as well.

Copy link

stale bot commented Dec 10, 2023

This issue has been automatically marked as stale because it has not had recent activity. The issue will be unassigned if no further activity occurs. Thank you for your contributions.

@stale stale bot added the status: stale issues and pull requests that have not had recent interaction label Dec 10, 2023
@stale stale bot removed the status: stale issues and pull requests that have not had recent interaction label May 31, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Development

No branches or pull requests

4 participants