Space Based Cloud Architecture - jellyfish-tom/TIL GitHub Wiki

[SOURCES]

Many websites are built around a database, and they function well as long as the database is able to keep up with the load. But when usage peaks, and the database can’t keep up with the constant challenge of writing a log of the transactions, the entire website fails.

The space-based architecture is designed to avoid functional collapse under high load by splitting up both the processing and the storage between multiple servers. The data is spread out across the nodes just like the responsibility for servicing calls. Some architects use the more amorphous term “cloud architecture.” The name “space-based” refers to the “tuple space” of the users, which is cut up to partition the work between the nodes. “It’s all in-memory objects,” says Richards. “The space-based architecture supports things that have unpredictable spikes by eliminating the database.”

Caveats:

  • Transactional support is more difficult with RAM databases.
  • Generating enough load to test the system can be challenging, but the individual nodes can be tested independently.
  • Developing the expertise to cache the data for speed without corrupting multiple copies is difficult.

Best for:

  • High-volume data like click streams and user logs
  • Low-value data that can be lost occasionally without big consequences—in other words, not bank transactions
  • Social networks