It is very important to think System Architecture in Software Development environment. For example, Netflix, Uber, and Amazon all big players in Software industry use a System Architecture called Microservices. What microservices do is basically support scalability, instead of developing an application in a monolithic way (System based on one architecture, front-end, middle-tier, and backend: which is dangerous and hard to scale) companies now build applications with scalability in mind. In a Microservice System Architecture, every component has it's own data center, the data center might contain an API call across multiple Web Services that contains business logic connected to the database. In Microservice Architecture, when one Microservice ( basically another application in one whole app ) is down, Docker Container or other Distributed System Helper spins out another Microservice to reroute inbound/outbound traffic to another Microservice that will accomplish the same task like the one down. Own Understanding An application may contain several other applications connected to their own databases and utilizes a message based Bus System at the far backend (Data warehouse: not sure, research!) to support integration. Microservice is nothing but a bunch of api calling with distributed data modeling across Servers. The idea is not to let a downfall of a Server affect the whole entire system. The database that supports scalability Mongo DB Casandra  MySQL  More on this Watch this video