HariKube is an advanced Kubernetes-native platform that enhances how
microservices and custom resources are managed by distributing data
across multiple databases. It addresses ETCD’s limitations by introducing
a powerful multi-layer and vendor database topology. Bringing a cloud-native
development experience and turning Kubernetes into a true PaaS.
❓ What is HariKube?
HariKube is a system that simplifies data location management in
Kubernetes by offloading microservice data from ETCD into databases
like MySQL and PostgreSQL, which are optimized for handling large-scale,
high-throughput data workloads.
It uses a middleware to handle routing and storage logic, improving scalability, performance, and reliability.
🌐 Benefits of HariKube Architecture
Configuration data can be stored in ETCD or any supported database
Microservice-related data is routed to databases that are best suited to the specific workload characteristics
Optimizes performance and reduces risk of ETCD overload
Achieves strong data isolation by enabling the use of dedicated databases per resource type, service, or namespace
It enhances data security, access control, and fault containment across workloads
It allows both horizontal and vertical scaling of databases
Data can be sharded across multiple databases for throughput gains
Improves responsiveness under load by spreading database operations across multiple backends
Each data type is isolated to avoid cascading failures
ETCD is protected from misuse as a general-purpose data store
Minimizes downtime by allowing independent database maintenance and updates per service
Easily extend support for additional databases through modular plug-ins and configuration
Add new resource types without infrastructure changes
Supports both flat (e.g., one database per resource or namespace)
and hierarchical database layouts (e.g., multiple databases for the same resource type)
Developers focus only on data structure and business logic
No requirement to run in a development environment; works seamlessly and transparently in production-grade Kubernetes clusters
Streamlines the development workflow by offering a true cloud-native experience
Reducing infrastructure overhead and enabling faster iteration
Leverages native Kubernetes capabilities such as RBAC, built-in eventing and messaging mechanisms, security policies, and admission webhooks to provide seamless integration with enterprise-grade infrastructure
⚠️ Limitations
While HariKube improves over single-ETCD setups, it inherits some
Kubernetes design tradeoffs:
Limitation
Description
Eventual Consistency
Updates may not be immediately visible across the system
Non-Transactional
No support for ACID transactions
Limited Data Filtering
No advanced query/filter capabilities within Kubernetes
Relational Logic
Complex joins or relations between data entities are not supported
Huge Datasets
Storing and serving large datasets at scale is possible, but requires patching Kubernetes and use of relational database
🛢️ Supported Databases
HariKube supports multiple backends, each with different capabilities regarding data access and filtering. The table below outlines which storage engines are compatible and whether they support storage-level filtering for efficient querying.
ℹ️ Storage-level filtering means the database can apply selectors (label, field) before returning data—reducing memory usage and improving performance at scale.
💼 Common Use Cases
Multi-tenant Kubernetes platforms
Per-namespace database isolation
Regional workload distribution
Offloading CRDs to scalable and high capacity databases
Simplifying stateless microservice infrastructure
🧠 How HariKube Works
Here’s a clear bullet-point breakdown of the HariKube Overview diagram:
User initiates a CRUD operation on a Kubernetes resource (e.g., a Custom Resource).
The request is passed to Kubernetes API server, which forwards it through the midleware.
HariKube intercepts the request and determines where the data should be stored based on configured routing policies.
If a routing policy is found, the request is forwarded to the corresponding database (e.g., MySQL).
If no routing policy is defined, the request falls back to ETCD (the default Kubernetes data store).
The selected backend (MySQL or ETCD) processes the CRUD request.
Once the backend responds, the response is passed back through the chain, returning an to the user.