iluwatar / iluwatar/java-design-patterns
Space-based architecture
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 94.7k
- Forks
- 27.4k
- Avg merge
- 3d 4h
- Merged PRs (30d)
- 10
Description
Description
The Space-Based Architecture design pattern is aimed at addressing scalability and concurrency issues by minimizing factors that limit application scaling. This pattern is ideal for applications with high user load and variable concurrent user volumes. The key components include processing units and virtualized middleware, with the primary aim of distributing and replicating data in-memory across processing units, eliminating the traditional database bottleneck.
Main Elements of the Pattern
- Processing Units: These contain application components, in-memory data grids, optional asynchronous persistent stores for failover, and a data replication engine. They can be dynamically started or stopped based on user load.
- Virtualized Middleware: This component includes:
- Messaging Grid: Manages request routing to available processing units.
- Data Grid: Manages data replication across processing units.
- Processing Grid (optional): Manages distributed request processing across different processing units.
- Deployment Manager: Monitors load conditions to dynamically scale processing units up or down.
References
Acceptance Criteria
- Implementation of Processing Units: Develop processing units that include application modules, in-memory data grids, and data replication engines.
- Middleware Components: Implement virtualized middleware components such as messaging grid, data grid, and deployment manager to manage request routing, data replication, and dynamic scaling.
- Scalability and Performance Testing: Conduct extensive testing to ensure the system can handle high concurrency and variable loads, achieving near-infinite scalability and high performance.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the repository’s existing Java design-pattern implementations and the referenced Space-Based Architecture material to establish the expected structure and scope. Done means the processing units, middleware components, and scalability testing described in the acceptance criteria are implemented and tested.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- distributed-systems
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100