Skip to content

Space-based application architecture

Space-based application architecture coordinates processing units with an in-memory data space or grid and a runtime for application work.

Core Idea

Space-based application architecture arranges application processing units around an in-memory data space or grid, with runtime services coordinating access and work. The arrangement specifies how application logic reaches data and how the units are deployed. Richards describes replicated in-memory data and virtualized middleware; GigaSpaces describes processing instances with partition-local spaces and event-triggered services. These are source-specific designs, not universal requirements that every unit hold the same data or host a partition.[1][2]

How would you explain it like I'm…

Helpers at a Shared Table

Imagine lots of helpers working on jobs at the same time. Instead of all running to one slow filing cabinet, they share a big quick whiteboard they can all read and write. Other helpers pass jobs to them and keep them organized. That's how a space-based application is built.

Many Workers, Shared Memory

Space-based application architecture is one way to build big computer programs. The work is split among many 'processing units,' each doing part of the job. Instead of always reaching for a slow storage system, they use shared data kept in fast memory, called a data grid or space. Extra services connect users, data and the units, and decide how they're arranged and run. This design is often chosen to handle busy and quiet times, but using it doesn't automatically guarantee the program will grow smoothly or never break.

In-Memory Data Grid Architecture

Space-based application architecture is a software design pattern in which processing units, which do the application's work, use a shared in-memory space or data grid instead of relying on one central database for every request. Runtime services connect clients, data and the processing units. A specific design has to say where the application logic runs, how it reaches the data, and how the units are coordinated and deployed. The goal is often to handle demand that goes up and down, but the pattern alone doesn't guarantee that it will scale or stay reliable.

 

Space-based application architecture organizes a system around processing units that execute application logic against an in-memory space or data grid, supported by runtime middleware that connects clients, data and units. Instantiating the pattern requires specifying where application logic executes, how units access the shared in-memory data, and how units are coordinated and deployed. The data grid provides shared, memory-resident state accessible to the processing units, while the runtime services handle routing and coordination. A common motivation is accommodating variable or bursty demand. However, the pattern is a structural arrangement; neither scalability nor resilience follows from adopting it, and such properties depend on the concrete design and deployment.

Examples

Auction illustration. Richards proposes an online bidding site where a request records a bid and updates the latest bid. His adjacent pattern description has application logic and replicated in-memory data in processing units, with middleware routing requests and coordinating replicas. Applying that general pattern to the auction is an inference; the source does not provide an auction deployment trace or performance measurement.[1]

Order tutorial. GigaSpaces describes a sample in which a stateful processor hosts a data grid and reacts to order events, a feeder creates data, and a web module displays results. It explicitly calls the sample not a real application; the feeder and web units are stateless, and elastic scaling is a possible enhancement.[3]

Boundaries

Tuple-space coordination describes entry and template operations, which may be used within an architecture but do not by themselves specify processing units and deployment. Partitioning, co-location of every unit, a specific middleware product, measured scalability and guaranteed resilience do not follow from the name alone. An in-memory design also needs an explicit account of data management and persistence appropriate to its implementation.[1][2]

Neighborhood in Abstraction Space

Space-based application architecture sits in a moderately populated region (60th percentile for distinctiveness): it has near-neighbors but no dense thicket of look-alikes.

Family — Software & Systems Architecture (33 abstractions)

Nearest neighbors

Computed from structural-signature embeddings · 2026-10-31

References

[1] Mark Richards, “Software architecture patterns,” O’Reilly, 15 August 2015, Space-Based Architecture section. https://www.oreilly.com/content/software-architecture-patterns/ registry ↩a ↩b ↩c

[2] GigaSpaces, “Space-Based Architecture,” 18 March 2024. https://docs.gigaspaces.com/16.2/overview/space-based-architecture.html registry ↩a ↩b

[3] GigaSpaces, “Order Management Tutorial,” 4 March 2025. https://docs.gigaspaces.com/ie-resources/solution-hub/xap-order-management-tutorial.html registry ↩