-Welcome to Microsoft Mechanics.
In the next few minutes I'll introduce you to the new Cassandra API for Azure Cosmos DB.
Which allows you to move your existing Cassandra applications to Azure Cosmos DB
without modifying a single line of code.
And take advantage of this fully managed
globally distributed database service with limitless scale.
Here I have a sample Cassandra application which I found on GitHub.
It's a chat application. I can already see a message here from Scott.
This app is built using Node.js
and it uses Cassandra to store chat messages.
Here I have it connected to a local Cassandra cluster running on my laptop.
To move this app to Azure Cosmos DB,
all I need to do is to go to the portal,
click new,
create Azure Cosmos DB account.
Note, in addition to Azure standard properties
I can also select the data model and API to use.
Cosmos DB is a multi-model database service
and it allows you to work with documents using SQL and MongoDB API,
key-value pairs using Azure Table API or graphs using Gremlin API.
And now it also supports Cassandra API at the protocol level.
Which means your existing Cassandra apps and tools
will continue to work as is with Cosmos DB.
Now it takes a few moments to create an account
so I have done it in advance.
Once you create an account the first thing you see is a Quickstart
that guides you on the steps to connect your existing Cassandra application to Cosmos DB.
For Node.js app, all I need to do is to copy this snippet of code,
go to my app in Visual Studio code
and replace the Cassandra connection code with the code I copied.
Now I also need to create a Cassandra key-space in a table my app needs.
I will use these Cassandra CQL commands
in runs I'm using CQL shell.
Note that CQL shell does not know anything about Cosmos DB.
It just executes these secure commands against cosmos DB endpoint,
thinking it's a Cassandra cluster.
We are ready, now let's restart the app
and go back to the browser and answer to Scott.
Now if we go back to the Azure Cosmos DB portal
you can see in the Data Explorer
that our Cassandra app is now writing into Cosmos DB.
Within the portal you can easily manage and query your Cassandra table
or you can continue to use the CQL shell if you prefer.
With just a few steps,
we were able to move our sample Cassandra web app to Cosmos DB
without modifying a single line of code.
Now the reason this is so exciting,
is that I can now take advantage of Cosmos DB as an
infinitely scalable, globally distributed, managed database service.
In the portal, I can select scale and settings
and provision throughput on my Cassandra table
to handle up to10 million transactions per second with one click of a mouse.
If you want, you can also programmatically provision throughput with a single API call.
To demonstrate the scale in action,
I have another copy of this table with a simulated ingestion rate
of up to 5 million transactions per second in Cosmos DB.
This eliminates the need to manage your Cassandra cluster yourself
or spending days adding nodes and modifying your Cassandra config.
With Cosmos DB, you specify the throughput you need
and we guarantee it with 4 9 SLA independently of the amount of data you store.
Cosmos DB also guarantees
that your reads and writes will be served in single-digit millisecond latencies
at the 99th percentile. No matter the ingestion rate.
With Cosmos DB, you don't need to worry about compaction, memory, CPU or disk I/O.
It is a fully managed service.
Azure Cosmos DB is built with global distribution at its core.
I can simply click with my mouse on a map
and bring my Cassandra data to every region in the world where my users are.
And this happens in minutes
versus weeks it takes to set up additional Cassandra replica clusters.
Now writing distributed applications is not easy.
To first help you, Cosmos DB offers five intuitive consistency models to choose from.
Each with a clear trade-off between performance and desired consistency.
You don't need to worry about replica sets, quorum or read repair,
you can now focus on writing correct application logic.
Cosmos DB is a fully managed service and it offers industry-leading SLAs
not just for high availability, which is five nines,
but those of four nine SLAs for consistency latency and throughput.
And we transparently show you how we perform against the SLAs here in the portal.
Hopefully this gives you a quick idea of how seamlessly you can
bring your existing Cassandra applications to Azure Cosmos DB.
No code changes are required. It works with your favorite Cassandra tools and drivers.
Including for example native Cassandra driver for Spark.
And it takes seconds to get going and it's elastically and globally scalable.
The Cassandra API for Azure Cosmos DB is in preview.
To try it for yourself go to the link shown and request access.
and give us feedback on Stack Overflow as you start testing.
Thank you for watching.