Swift implementation and architecture
The two key issues that any storage system has to solve are as follows:
- Where to put and fetch data
- How to keep the data durable and available
We will explore these two core issues through the upcoming discussion on architecture and implementation.
Key architectural principles
Some key architectural principles behind Swift are as follows:
- Masterless design: A master in a system creates both a failure point and a performance bottleneck. Masterless design removes this and also allows multiple members of the cluster to respond to API requests.
- Loose coupling: There is no need for tight communication in the cluster. This is also essential for preventing performance and failure bottlenecks.
- Load spreading: Unless the load ...