Comparison between client-server and P2P architectures
Client-server and P2P architectures should be seen as a spectrum of models ranging from centralization to decentralization, with a lot of viable hybrid models in between the two. See Figure 4.8.
Figure 4.8 – The spectrum from decentralized to centralized architectures
Centralized architectures have simpler ways of achieving strong consistency, and decentralized architectures have more complex ways of achieving usually weaker consistency.
Client-server architectures are useful in the following circumstances:
- There is a need for central control and management, typically applicable to industries under regulations
- There are mission-critical processes that require systems to be highly available, resilient, and consistent
- There is a lot of data to be collected and correlated, and the data needs to be consistent, replicated, secure, and accessed in a secure manner
On the contrary...