But what if you get a spike? A lot of deep engineering has gone into creating a system that offers battle-tested SLAs. In Cosmos DB, we are constantly adding more consistency models and not all are exposed. In today's launch we have five. DocumentDB had initially three, then four. There are many, many features that we keep adding.
What are the five consistency models at this point?
Strong, bounded staleness, session, consistent prefix, and eventual.
This is obviously something for large, global enterprises, correct?
It could be for any app that wants to reach the users. If you're an ISV, if you're a startup building an iPhone app, you need to find a database that can make that data automatically available everywhere, and I think that is a fundamental, differentiated capability. Click on the map of the world and add regions, and your data magically appears.
Is any of Cosmos DB open source at all?
No, it is not open source.
Does Cosmos DB support containers and Docker?
You can use a version of Cosmos DB on your laptop. We have a Dockerized version of it. You can put it in a Docker container, run it on your laptop or on a VM somewhere.
How were you able to make Cosmos DB scale worldwide?
It took us many years and we are not done yet. There are many aspects. In my blog post, I talk about at a very level a list of things. But for each one it is probably worth 20, 30 pages of design documents. We stand on the shoulders of giants. Underneath us, we have millions of lines of C++ code, but underneath us is also a lot of Azure infrastructure that has helped us.
Do you anticipate Cosmos DB ever running on other clouds? Would you ever let this run on the Amazon cloud or the Google cloud or is this specifically going to be Azure only?
We want to be on Azure Stack, so that is one path. In terms of other cloud providers, one of the things we have done is that we have opened up all APIs. You can use Mongo APIs, and over time, we're going to add other APIs. We add Gremlin APIs [which are in preview mode]. We support DocumentDB, SQL APIs, we support Azure table storage APIs. Over time we are going to support other APIs. You can use these APIs, and you don't have to change your app. That's the direction we have.
How do you hope to improve Cosmos DB in the future? What capabilities do you plan to add to it that aren't there now, and when might we see these?
We are constantly evolving. We have many optimizations in the area of how we [work with] different ways of tiering data so you can, if you haven't used your data for some period of time, you can archive it. If you want the freshest data, we prioritize those over the data that you're not accessing recently-things like that are in the path forward. In terms of APIs we go by the [level of] interest.
Sign up for Computerworld eNewsletters.