For most self managed Kubernetes environments the SQL database is one of the most painful infrastructure parts. Typically SQL database servers are not designed to run in a distributed environment like Kubernetes. Running it in an external environment is often not the desired architecture because a Kubernetes Cluster should not depend on external infrastructure. One solution is to run a single SQL database in a Kubernetes POD with a distributed filesystem like Longhorn or Ceph. But this always have some performance impacts and requires fast SSDs. Another solution is to run a distributed SQL Database like Cockroach.
With the latest version of the Imixs-Cloud project we now offer a smart solution to run a SQL Database cluster within a self managed Kubernetes cluster.
CockroachDB is a distributed SQL database with a build in replication mechanism. This means that the data is replicated over several nodes in a database cluster. This increases the scalability and resilience in the case that a single node fails. With its Automated-Repair feature the database also detects data inconsistency and automatically fixes faulty data on disks. The project is Open Source and hosted on Github.
CockroachDB fully supports distributed ACID transactions. This means guaranteed atomicity, isolation, consistency, and durability of data. This allows CockroachDB to be used in combination with Jakarta EE and JPA. Supporting the PostgreSQL wire protocol, CockroachDB can be used out of the box for the Imixs Workflow engine using the standard PostgresSQL JDBC driver.
See how CockroachDB can be used within the Imixs-Cloud project .
You can find a install guide here.