Search code examples
distributed-systemsystem-design

In system design, when saying distributed system, do we mean distributed database system?


For example, if i have a single database in my application, but multiple instances of application running behind a load balancer. Would that be called a distributed system?

If so, wouldn't this system be violating the CAP theorem. There is no partition in database so we achieve partition tolerance there and availability and consistency.


Solution

  • By saying "Distributed system" only you leave some ambiguity in it, in the sense that you don't specify if you're refering to the database aspect or the web server of it, or to any particular component, just that there is a general "distributed" aspect of it, but the term, all by itself, doesn't implies database in any way.

    About your particular example of system, in that case you won't have availability, even though you have multiple redundant web servers, you still have a single point of failure in the DB server, and if it goes down, your system as a whole goes down. Hence, you still have the CAP theorem in place.