Recently, Jeff Beck, Director of Database Engineering at SmartThings sat down with Aaron Ploetz on the Apache Cassandra® Corner podcast. They discussed how SmartThings has used Cassandra for three or four major use cases over the years. Those use cases include things like authentication and authorization, identity management systems, IoT (Internet of Things) event processing, and distributed state storage.
Essentially, they leverage Cassandra to help ensure global availability. This is important as SmartThings has used Cassandra to replicate data for their identity systems around the world.
“So when we build things in Asia, Europe, and North America; those are our three, major places that we need everything to work. And that’s where Cassandra really is the thing for that. For our size of a team at the time, we could make it just work.”
Jeff goes on to explain that over the years, there were some areas of Cassandra which were trickier than others. But his team was able to leverage a few features like TTLs (Time To Like) and Time Window Compaction in Cassandra to match and support their identity use cases.
“We have done a lot with Time Window Compaction and more temporal data. In the identity space, think about refresh tokens of OAuth credentials, for example. They’re TTL’d so they only last a certain amount of time. They get created sequentially, and fall-off sequentially. So we do a lot of that.“
Jeff also mentions that they have spent a lot of time keeping identity working, not just optimizing for low latency. This is critical because everything needs to go through the authentication system. SmartThings has also done a few migrations between data centers and still maintained uptime. With their IoT use cases everything needs to be zero downtime.
“You don’t do scheduled downtime for people’s automations, for what they care about is their house. Because the minute you do 10 minutes down, a purposeful 10 minute downtime, someone’s gonna have a flood in their basement. That’s what we don’t want.”
What is clear, is that SmartThings makes supporting their customers a top priority. Apache Cassandra is the database they use to make sure their systems stay up, which gives their customers the peace-of-mind to focus on the things which matter most to them.