Today’s applications are facing more constraints than ever. As the amount of users increases, applications need to be resilient, ensure accessibility and data consistency across the globe.
In recent years, microservices-oriented architectures gained in popularity. They provided solutions to achieve resiliency, accessibility and self-healing. With this type of architecture, applications can dynamically react and scale out when the workload increases and, on the contrary, scale in when resources are not used. This solution is performant and cost effective.
In distributed systems one of the most challenging aspects however is managing data. Even when the application is built as a set of hundreds or thousands of services able to handle millions of requests, one of the most critical components of the system is the storage. In some situation, storage can represent a single point of failure. Solutions have been developed to ensure redundancy and data replications capabilities across many regions, but these solutions require a hard administrative work in order to keep the subsystem behaviour transparent to the developers.
Solutions have been developed in the cloud in order to bring an answer to this problem. This is what Cosmos DB is all about. A fully managed, globally distributed NoSQL database.