CockroachDB is a highly resilient, scalable, distributed database technology built around a transactional model that is strongly consistent. Users should think of it as a modernized relational database built from the beginning with distribution, scale, and performance in mind. As the open source project has evolved, the cloud and orchestration integration has evolved to make this solution relevant for several use cases. This blog is meant to summarize the top use cases that we see for CockroachDB.
Distributed Online Transaction Processing (OLTP)
OLTP systems are at the core of our everyday online experiences – financial transactions, order entries, retail sales, customer relationship management, etc. All of these experiences require low mili-second response times and are critical to the experiences that we have come to expect. The data must always be available. The read/write performance capabilities of CockroachDB in a distributed model meets the level of performance required along with ensuring that the data is highly resilient. On failure, data is efficiently redistributed and replicated across nodes within the cluster. The cluster can be configured across availability zones, across regions within a particular cloud provider, or even across clouds. CockroachDB differs from some of the more traditional relational databases like Postgres that has limitations with distribution and horizontal scaling. Even with MongoDB entering the ACID compliant space, a user cannot write to multiple nodes with MongoDB which can be done with CockroachDB.
Geo-partitioning for Low Latency or Regulatory Compliance
Very similar to the previous use case in that the priority is to have the data distributed. In this use case, it is imperative that the data reside in a particular region for either low latency performance or regulatory compliance. In today’s world, most users have customers that are distributed across time zones and countries. With CockroachDB, users can have nodes spread across a high number of localities and still be part of a single cluster. This allows for users to have a data presence with their cluster in the locations where they have customers. Users can provide a minimum level of latency and have a consistent level of service for their entire customer base and not just for where most of their customers reside. CockroachDB can also be configured to only keep data in a particular location in order to be compliant with government regulations. In this scenario, they are still part of the main CockroachDB cluster.
Most data use cases include a metadata layer. The metadata is the information about the structures that contain the data users actually care about. Some examples of metadata include the name of the table where the data is stored, any limitations on the type of data in a particular field, security restrictions on data, etc. While metadata is critical in maintaining order in a database, it is usually not a high priority when users think about the design of their data layer. When designing a new application, CockroachDB is a good option due to its flexibility and performance. With metadata being along for the ride, this layer needs to be able to go where the real data needs to go and still be highly performant. Users can leverage CockroachDB at the very outset in a simple or non-distributed implementation but still be ready for scaling and distribution when the time comes.
System of Record
System of Record implementations is all about having one voice as the authority. In today’s world, we see data coming in from all kinds of sources, different timings, various methods of collection and extractions, and the need for interpretation. The system of record aggregates and interprets this data based upon a set of rules to become the application system of record. This isn’t always needed but with variability of data increasing, it is becoming more common. CockroachDB’s transactional capabilities with distributability really shines in this use case. In a system of record, there is significant value in the strongly consistent implementation of the ACID construct. The distributability is valuable due to the original data sources being spread out. With CockroachDB, a user’s system of record can be close to where the original data source resides and still be highly performant and resilient.
Legacy Bridge to the Cloud
While developing an application from scratch is exciting and rewarding, there are plenty of relevant applications based upon a relational model that have been around for a while and are not going away. The benefits for organizations to move to the cloud is only increasing and isn’t going away. CockroachDB allows for users to leverage the same relational model without having to make major changes to the application itself. The distributability, the fact that it is cloud agnostic, and that it can scale to support enterprise level implementations makes CockroachDB a solid database choice for organizations looking to take advantage of the benefits of being in the cloud without having to move away from the relational model.
These are just a few of the CockroachDB use cases out there. CockroachDB has some great documentation where users can learn more. If you are interested in having a conversation about CockroachDB or want to learn more, contact us here at ObjectRocket. We would love to learn about your data challenges and see if we can help.