Hubbry Logo
CockroachDBCockroachDBMain
Open search
CockroachDB
Community hub
CockroachDB
logo
7 pages, 0 posts
0 subscribers
Be the first to start a discussion here.
Be the first to start a discussion here.
CockroachDB
CockroachDB
from Wikipedia

CockroachDB
Original authorsSpencer Kimball, Peter Mattis, Ben Darnell
DeveloperCockroach Labs
Initial release2017; 9 years ago (2017)
Stable release
25.1.4 / April 8, 2025; 9 months ago (2025-04-08)
Repository
Written inGo
Available inEnglish
TypeRDBMS
LicenseProprietary[1]

CockroachDB is a source-available distributed SQL database management system developed by Cockroach Labs.[2][3]

Key Information

The relational functionality is built on top of a distributed, transactional, consistent key-value store that can survive a variety of different underlying infrastructure failures, and is wire-compatible with PostgreSQL which means users can take advantage of a wide range of drivers and tools from the extensive PostgreSQL ecosystem. A CockroachDB cluster consists of a number of nodes that can be spread across failure domains such as data centres or public cloud regions. A cluster can be scaled both horizontally[4] (by adding nodes) and vertically (by increasing the resources allocated to the existing nodes). It can provide high levels of resilience and availability and can be run in a variety of environments such as bare metal, VMs, containers and Kubernetes, both in private data centers and in the cloud. CockroachDB gets its name from cockroaches, as they are known for being disaster-resistant.[5]

History

[edit]

Cockroach Labs was founded in 2015 by ex-Google employees Spencer Kimball, Peter Mattis, and Ben Darnell. Kimball and Mattis had been key members of the Google File System team,[6] while Darnell was a key member of the Google Reader team.[7]

While at Google, all three had used Google-owned DBMS's Bigtable and its successor, Spanner.[3] After leaving Google, they wanted to design and build something similar.[8] Spencer Kimball wrote the first iteration of the design in January 2014, and began the open-source project on GitHub in February 2014, allowing outside access and contributions.[9]

Development on GitHub attracted substantial contributions, which earned the project the Open Source Rookie of the Year award by Black Duck Software.[10]

The co-founders supported the project with conferences, networking, meet-ups, and fund-raising financial rounds.

In June 2019, Cockroach Labs announced that CockroachDB would change its license from the free software license Apache License 2.0 to its source-available license, known as the Business Source License (BuSL), which forbids “offer[ing] a commercial version of CockroachDB as a service without buying a license,” while remaining free of charge for community use.[11][12]

Features

[edit]

CockroachDB stores copies of data in multiple locations to deliver quick access.[8][13]

It is described as a scalable, consistently-replicated, transactional data store.[14] A single instance can scale from a single laptop to thousands of servers.[3]

CockroachDB is designed to run in the cloud and has a high fault tolerance. According to popular news outlets, it is described as “almost impossible” to take down.[15][16][13]

CockroachDB has a consistency model that is designed to match as closely as possible to the capabilities of Google Spanner, but without a dependence on specialized hardware for time synchronization. "No stale reads" is the simplest way to describe this consistency model which has deliberately made the trade-off of having non-linearizable transaction histories.[17] Transactions containing overlapping keys are guaranteed to have external consistency. And so, in practice, systems relying on CockroachDB are very unlikely to reproduce consistency issues because nodes with high variations in clock skew can be removed from clusters, applications can rely on external consistency provided by overlapping keys and writing to the same range, and writes propagate changes to followers' timestamp caches.[18]

See also

[edit]

References

[edit]
[edit]
Revisions and contributorsEdit on WikipediaRead on Wikipedia
from Grokipedia
CockroachDB is a source-available database designed for building resilient, scalable cloud-native applications, combining the consistency and transaction support of traditional relational databases with the horizontal scalability and of systems. It provides a PostgreSQL-compatible interface, enabling developers to use familiar while benefiting from automated distribution, replication, and recovery across clusters of nodes. CockroachDB emphasizes , surviving node failures and network partitions without data loss, making it suitable for global, data-intensive workloads. CockroachDB was developed by Cockroach Labs, a company founded in 2015 by Spencer Kimball, Peter Mattis, and Ben Darnell, all former Google engineers who drew inspiration from Google's Spanner distributed database to address challenges in scaling relational databases for cloud environments. The project originated as an initiative to create a "survivable" database resilient to the "apocalypse" of distributed system failures, with its name evoking the indestructibility of cockroaches. Cockroach Labs has since grown to support enterprise adoption, offering both self-hosted and fully managed cloud deployments on platforms like AWS, Google Cloud, and Azure. Key features of CockroachDB include automatic sharding and rebalancing of data for effortless scaling, built-in geo-partitioning for low-latency global access, and advanced security measures such as (RBAC) and encryption at rest and in transit. It supports (CDC) for real-time integrations and rolling upgrades to minimize downtime, powering applications in sectors like , , and where reliability and performance under load are critical. In 2025, marking its 10th anniversary, CockroachDB released version 25.2 with major performance gains and enterprise advancements. As of 2025, CockroachDB has over 800 contributors and maintains its position as a leading solution for in hybrid and multi-cloud architectures.

History

Founding

CockroachDB was founded in 2015 by Spencer Kimball, Peter Mattis, and Ben Darnell, all former Google engineers who had previously collaborated on projects like the image editor GIMP and worked at startups such as Viewfinder and Square. Their experience at Google exposed them to advanced distributed systems, particularly inspiring them to draw from the design principles of Google's Spanner, a globally distributed database that emphasized consistency and scalability across data centers. The founders aimed to create an open-source alternative that could deliver similar capabilities without the proprietary constraints of cloud vendor lock-in, addressing the growing need for resilient databases in cloud-native applications. The project's name, CockroachDB, reflects its core design philosophy: building a database resilient enough to survive catastrophic failures, much like the insect's legendary hardiness. The initial goal was to develop a scalable, consistent database that maintains (Atomicity, Consistency, Isolation, Durability) transactions while enabling horizontal scalability across clusters, even in the face of node, rack, or regional outages. Early prototypes focused on this survivability, implementing a key-value store foundation with SQL semantics layered on top to ensure without sacrificing . In parallel with the technical development, the founders established Cockroach Labs as a private company in 2015 to commercialize and sustain the project. The company prioritized open-source development from the outset, releasing the code under the Apache 2.0 license to encourage community contributions and widespread adoption. Alpha releases began in late 2015, with initial binaries and documentation made available on GitHub, allowing early testers to experiment with the system's distributed architecture and fault-tolerant features. By 2016, these efforts culminated in a beta release, marking the transition from prototype to a more stable offering that demonstrated the database's potential for production-like horizontal scaling and ACID compliance.

Key Milestones

CockroachDB achieved a significant with the release of version 1.0 on May 10, 2017, which marked its production readiness as an open-source, cloud-native database with comprehensive SQL support and foundational multi-region capabilities inspired by Google's Spanner. In October 2019, Cockroach Labs introduced CockroachDB Cloud as a fully managed service in beta, enabling deployment of the database across multi-cloud environments to simplify scaling for global businesses. That same year, in June 2019, Cockroach Labs shifted enterprise features of CockroachDB to the Business Source License (BSL) 1.1, a source-available model that restricted certain commercial uses while maintaining community access to core functionality. This approach was later fully transitioned in November 2024 with the v24.3 release on November 18, retiring the free Core edition and adopting the CockroachDB Enterprise license, which offers free access to qualifying organizations with under $10 million in annual revenue. Cockroach Labs marked its 10th anniversary on February 8, 2025, reflecting on a decade of advancements in technology. The company celebrated this occasion with the v25.2 release on June 3, 2025, delivering over 41% performance improvements across key workloads and introducing vector indexing to support AI-driven applications. Building on this momentum, the v25.3 release on August 4, 2025, added a new operator for automated deployment and scaling, alongside enhanced migration tools via the MOLT Fetch toolkit for smoother transitions from legacy databases. Throughout its evolution, Cockroach Labs secured substantial funding to fuel development, culminating in a Series F round of $278 million in December 2021 that valued the company at $5 billion and brought total funding to $633 million.

Architecture

Core Principles

CockroachDB adheres to the CP (Consistency and Partition tolerance) model of the , prioritizing strong data consistency over in the event of network partitions. This design choice ensures that all replicas maintain synchronized states using the consensus algorithm, preventing divergent data copies even during failures, though it may temporarily pause operations until partitions resolve. By focusing on consistency, CockroachDB avoids the risks of stale reads or lost updates common in availability-first systems. At its foundation, CockroachDB operates as a distributed key-value store that supports a SQL interface, relational queries while managing data across multiple nodes. All user data, including tables and indexes, is encoded into a sorted map of key-value pairs, which the SQL layer translates into efficient distributed operations. This architecture delivers full (Atomicity, Consistency, Isolation, ) transactions spanning arbitrary keys and nodes, with serializable isolation to prevent anomalies like dirty reads or lost updates. The transactional layer coordinates intents and timestamps to enforce these guarantees without requiring application-level locking. Horizontal scalability is achieved through automatic sharding of the keyspace into ranges—contiguous units of data typically up to 512 MiB—and replication across nodes for . As data grows, ranges split dynamically when they reach the configured maximum size, distributing load evenly without manual intervention. By default, each range maintains three replicas on distinct nodes or failure domains, ensuring data survivability against the loss of any single node while leveraging for consensus-driven replication. This approach allows clusters to scale linearly by adding nodes, with automatic rebalancing to maintain balanced utilization. In cloud deployments, CockroachDB employs a multi-tenant architecture to isolate resources among multiple users while enabling elastic scaling. Tenants share underlying infrastructure but operate in virtualized clusters with strong isolation for security and performance, allowing compute and storage to scale independently based on demand. This model supports thousands of concurrent databases on shared hardware without compromising per-tenant guarantees, optimizing costs for SaaS and cloud-native applications. CockroachDB emphasizes geo-partitioning to minimize latency for global applications and enhance resilience against regional failures. Data can be partitioned by locality—such as region or availability zone—at the row or table level, ensuring frequently accessed records remain close to users and reducing cross-region data travel. For instance, regional tables replicate data within a specific for low-latency reads and writes, while global tables distribute replicas across regions for read-anywhere access, surviving data center outages through configurable survival goals. This geo-aware distribution integrates with the replication layer to balance performance and in multi-region clusters.

Components and Data Management

CockroachDB operates as a distributed system composed of multiple nodes, each representing an individual server that runs the CockroachDB process and participates in the cluster. These nodes collectively manage data and transactions, communicating via with configurable network timeouts to ensure efficient coordination. A node hosts one or more stores, which are local disk-based storage units containing replicas of data ranges; no two replicas of the same range reside on the same store or node to prevent single points of failure. Data within stores is managed using the key-value storage engine, an LSM-tree implementation that persists key-value pairs in immutable SST files across multiple levels, with memtables and write-ahead logs ensuring durability before flushing to disk. As of v25.3 (October 2025), CockroachDB introduced value separation in to boost throughput for write-heavy workloads by up to 60%. At the core of data management, CockroachDB shards its key-value store into ranges, which are contiguous, non-overlapping segments of the keyspace, typically sized up to 512 MiB before automatic splitting. Each table and its indexes initially occupy a single range, but as data volume grows, ranges split to distribute load. The entire dataset forms a monolithic sorted map, with keys structured as /<tableID>/<indexID>/<indexed columns> -> <row data>, enabling efficient lookups and scans. Metadata for range locations is maintained in special meta ranges—a two-level index (meta1 and meta2)—that tracks range descriptors, including RangeIDs, key spans, and replica node addresses, facilitating transparent data access from any node. Replication ensures data durability through the consensus algorithm, which organizes s of each range into leader-follower groups with a configurable replication factor (defaulting to three). The leader , known as the leaseholder, coordinates writes by proposing commands to its Raft log, which followers replicate via heartbeats and votes (requiring a , such as 2 out of 3), guaranteeing consistency and up to (replication factor - 1)/2 failures. Automatic occurs when liveness heartbeats detect a dead node, triggering a new and lease transfer to a surviving , typically completing in seconds without . This mechanism, as detailed in CockroachDB's foundational design, supports geo-distributed resilience on commodity hardware. The transaction layer builds on this foundation by implementing Multi-Version Concurrency Control (MVCC) to provide serializable isolation without traditional locks, using hybrid logical clocks (HLC) to operations and maintain version histories. MVCC stores multiple versions of each key-value pair with timestamps, allowing reads to access consistent snapshots while writes place provisional "write intents" that serve as optimistic locks, resolved via a distributed commit protocol. Concurrency conflicts, such as write-write or write-read interferences, are detected using per-node lock tables and transaction records, with resolutions like timestamp pushing or transaction aborts ensuring serializability. This lockless approach minimizes contention in distributed environments. System tables in the system and crdb_internal schemas manage cluster metadata, including topology details like node liveness (system.nodes), range leases (system.rangelog), and zone configurations that define replication rules per database, table, or index (e.g., num_replicas and locality constraints). Zone configs are hierarchical, inheriting from cluster defaults and overriding for specific objects via SQL statements like ALTER TABLE ... CONFIGURE ZONE. Schema changes, such as adding columns or indexes, are tracked in crdb_internal.schema_changes and propagated atomically across the cluster, updating range descriptors and metadata in meta ranges to reflect new topology without downtime. Rebalancing maintains even data distribution and high availability through automated processes like range splitting, which occurs when a range exceeds its size limit or based on load, creating two balanced sub-ranges whose descriptors update the meta index. Merging consolidates underutilized adjacent ranges to optimize storage and query efficiency. Lease transfers during rebalancing or recovery relocate leadership to nodes closer to read/write traffic, guided by metrics like QPS and latency, with operations scheduled periodically (default 10 minutes) or triggered by events like node additions/removals. Recovery from failures involves snapshotting replicas to new nodes and replaying logs to catch up, ensuring minimal disruption.

Features

SQL and Transactional Capabilities

CockroachDB provides high compatibility with the wire protocol (version 3.0, or pgwire), enabling seamless integration with most drivers, ORMs, and tools such as and psql. This compatibility extends to the majority of SQL syntax, allowing applications to migrate with minimal modifications while leveraging CockroachDB's distributed architecture. The database ensures full compliance for transactions, guaranteeing atomicity, consistency, isolation, and durability even across distributed nodes. By default, CockroachDB operates at the SERIALIZABLE isolation level—the strongest in the SQL standard—preventing anomalies like dirty reads or lost updates through multi-version and ordering. Distributed transactions spanning multiple are coordinated via the transaction layer, which uses parallel commits to achieve atomicity without traditional two-phase commit blocking, ensuring data correctness in geo-distributed environments. CockroachDB supports advanced SQL features, including joins (such as inner, outer, and cross joins), secondary indexes (including hash-sharded for sequential key optimization and generalized inverted indexes for JSONB and array queries), and stored procedures using or SQL logic callable via the CALL statement. Common Table Expressions (CTEs), available since with recursive and correlated support added in later releases like v20.1 and v21.2, enable complex subquery reuse for improved query readability and performance. These features align closely with semantics, facilitating sophisticated analytical and operational workloads. Schema management in CockroachDB uses DDL statements (e.g., CREATE TABLE, ALTER TABLE) that apply atomically across the entire cluster, ensuring consistent state without downtime through online schema changes. These operations are executed in implicit transactions, propagating modifications to all nodes via the distributed consensus mechanism for . In version 25.2, CockroachDB introduced vector indexing in preview, supporting storage of high-dimensional embeddings and efficient similarity searches (e.g., ) via SQL queries, with cosine and inner product distances added in v25.3. This feature became generally available in v25.4. This integration enables AI and workloads, such as and recommendation systems, directly within the database using CockroachDB's C-SPANN-based indexing protocol.

Scalability and Resilience

CockroachDB achieves horizontal scalability by allowing users to add nodes dynamically to a cluster, which triggers automatic rebalancing of data across all nodes to maintain even distribution and performance. This process ensures that as data and workload volumes grow, the system can scale out seamlessly without manual intervention or downtime. Clusters can support hundreds of nodes, as demonstrated by customer deployments reaching up to 160 nodes while maintaining operational efficiency. The database's resilience is enhanced by features designed to ensure and , including a 99.999% uptime (SLA) for multi-region clusters in CockroachDB Cloud. Multi-region replication enables zone and survival goals, where data is synchronously replicated across multiple geographic locations to withstand outages in entire zones or . Fast recovery is facilitated through range leases, which allow sub-second leader elections and failovers in the underlying consensus protocol, minimizing disruption during node or network failures. Performance optimizations in versions 25.2 and later (as of 2025) deliver significant throughput improvements, with up to 50% gains across various workloads in v25.2 compared to v24.3, alongside further enhancements in v25.3 and v25.4 such as improved vector indexing and a new operator, and reductions in resource utilization for better efficiency on commodity hardware. The system also handles network partitions robustly, as validated through internal benchmarks that simulate adversity scenarios like partitions and regional outages, ensuring consistent performance without . These enhancements contribute to ACID-compliant transactions that remain resilient under load, supporting reliable operations at scale. CockroachDB provides comprehensive and recovery mechanisms, including full and incremental backups that capture changes efficiently to minimize storage and time costs. With revision enabled, allows restoration to any timestamp within the backup window, preserving granular data states without full re-ingestion. Enterprise-grade (CDC) further supports resilience by streaming row-level changes to downstream systems for real-time replication and disaster recovery. Monitoring and observability are integrated natively, with built-in metrics tracking key indicators such as latency, throughput, and resource usage across the cluster. SQL diagnostics tools provide insights into query performance and execution plans, aiding in troubleshooting and optimization. CockroachDB exposes these metrics for external tools like and , enabling customizable dashboards and alerting for proactive resilience management.

Deployment and Licensing

Options for Deployment

CockroachDB offers flexible deployment options to suit different operational needs, ranging from self-managed setups to fully managed services. Self-hosted deployments allow users to run CockroachDB on their own , providing full control over the environment. These include single-node configurations ideal for development and testing, where a lightweight instance can be started locally without clustering overhead. For production environments, multi-node clusters can be deployed on-premises in private data centers or on virtual machines (VMs) across providers, enabling horizontal scaling and through manual replication and node management. is supported via , with the CockroachDB Operator—introduced and enhanced in version 25.3—facilitating automated deployment, scaling, and management of clusters in containerized environments. CockroachDB Cloud provides managed alternatives, eliminating much of the operational burden. The serverless option, available as CockroachDB Standard, operates in a multi-tenant architecture with strong tenant isolation, automatically scaling resources based on demand and billing on a pay-per-use model (e.g., per request unit and storage). Dedicated clusters under CockroachDB Advanced offer single-tenant isolation, configurable in single or multi-region setups across AWS, GCP, or Azure, with guarantees like 99.99% uptime SLA and node-based scaling for predictable performance. These cloud deployments support multi-cloud strategies, allowing clusters to span providers for resilience and avoiding . Hybrid deployments bridge self-hosted and cloud environments, supporting seamless migrations from on-premises to cloud or multi-cloud configurations. Users can replicate data across on-premises setups and cloud regions on AWS, GCP, or Azure, leveraging CockroachDB's geo-partitioning for low-latency access and disaster recovery. Installation for self-hosted options is straightforward, with binary downloads available for direct execution on supported operating systems like , macOS, and Windows. Docker images enable containerized deployments for portability, while Helm charts simplify installations by packaging the necessary resources and configurations. Management is streamlined through built-in tools, including the CockroachDB Console—a web-based UI for monitoring cluster health, querying data, and administering settings—and the cockroach sql command-line shell for interactive SQL operations and scripting. These tools apply across self-hosted and cloud deployments, with additional cloud-specific features like (SSO) in .

Licensing Model

CockroachDB's licensing has evolved significantly since its inception to balance community access with sustainable business development. Initially released under the Apache 2.0 License in 2015, the database allowed broad open-source usage and contributions. In 2019, Cockroach Labs transitioned the core edition from Apache 2.0 to the Business Source License (BSL) 1.1, a source-available license that permits evaluation and development but restricts production use by cloud service providers for a three-year change date period, aiming to prevent hyperscalers from offering competing without contribution. Enterprise features, such as advanced security and backup tools, were governed by a separate proprietary license requiring payment. In August 2024, Cockroach Labs announced a further shift to a unified licensing model, effective with the release of version 24.3 on November 18, 2024, introducing the CockroachDB Enterprise License—a , source-available that consolidates all features under a single offering. This change retires the free Core version entirely, eliminating the previous open-core distinction and requiring a for any production deployment of the full software, though the source code remains publicly accessible for review and non-production use. The transition reflects a strategic focus on enterprise monetization, as the company stated it would "ensure that all of our users have access to the full breadth and scope of CockroachDB innovation while supporting our investment in the product." Under the current model, CockroachDB offers tiered access to accommodate different user needs. A free Developer Edition provides access for non-production environments, such as local development and testing, limited to single-node clusters without specified resource caps. For production use, the Enterprise Edition is free for individual developers and organizations with less than $10 million in annual revenue, enabling small teams and startups to deploy at scale without cost. Larger enterprises must purchase a paid , structured as annual subscriptions based on compute hours and storage usage, with available upon request from for self-hosted deployments. Compliance with the CockroachDB Enterprise imposes specific restrictions to protect Cockroach Labs' commercial interests. Self-hosted deployments can obtain perpetual licenses for on-premises or private cloud use, allowing indefinite operation post-subscription expiration provided core terms are met, but updates and support cease without renewal. Cloud-hosted instances, including CockroachDB Cloud, operate on subscription models without perpetual options, with usage metered continuously. Forks of versions prior to v24.3 remain under their original 2.0 or BSL licenses, permitting continued open-source development, though Cockroach Labs provides no support or updates for them. Violations, such as unauthorized production use by large entities, may result in license revocation and legal action, as outlined in the terms. The licensing evolution has sparked discussion within the open-source community, highlighting tensions between accessibility and commercial viability. By retiring the Core offering, Cockroach Labs aims to streamline development and prioritize enterprise-grade support, investing more in features like multi-region replication and AI integrations. Legacy users of pre-2024 versions retain options to and maintain open-source variants, as seen with initiatives like Computer's commitment to sustaining Apache-licensed releases, providing continuity for those wary of shifts. This model positions CockroachDB as a premium solution, appealing to enterprises while offering limited free tiers to foster adoption among developers and smaller organizations.

Adoption

Notable Users

Netflix operates over 380 CockroachDB clusters to power critical workloads including personalization recommendations, billing systems, and content metadata management, with multi-region configurations enabling low-latency access for its global user base. utilizes CockroachDB for real-time and management within its infrastructure, supporting 24/7 platforms through multi-region deployments that provide low-latency reads across the . Lush Cosmetics relies on CockroachDB to manage its platform, handling real-time global inventory tracking and with to optimize stocking and reduce operational complexity across 950 stores in 49 countries. Financial services firms such as deploy CockroachDB for high-volume payments processing and fraud detection, where its distributed architecture supports scalability up to 1.9 petabytes of data and 1.2 million queries per second across hundreds of clusters while maintaining five-nines resiliency for transactional integrity (as of ). The Home Depot uses CockroachDB to support its retail operations, leveraging the database's resilience for managing inventory and customer data at scale.

Use Cases

CockroachDB is particularly well-suited for applications that demand and strict data consistency, such as real-time payments processing, where it supports 24/7 operations with multi-region replication to prevent during global transactions. In fraud detection systems, its ACID-compliant transactions enable scalable identity and access management (IAM) across regions, ensuring secure and consistent user while handling high-velocity data streams. For systems in banking and trading, CockroachDB modernizes core operations by providing resilient, multi-cloud deployments that maintain and compliance with regional regulations through features like data domiciling. In , CockroachDB excels at inventory management by delivering a global view of stock levels through geo-partitioned clusters, enabling accurate tracking and updates during high-traffic events like sales surges without bottlenecks. This horizontal scaling capability ensures low-latency transactions for and pricing adjustments across distributed locations. For gaming platforms, it supports user sessions and leaderboards by maintaining consistent player data with guarantees, dynamically rerouting queries during peak loads to sustain real-time experiences in massively multiplayer environments. CockroachDB's resilience makes it ideal for IoT and , where it manages device metadata by storing data in a fault-tolerant manner, automatically recovering from network partitions to ensure uninterrupted connectivity. In routing optimization and event streaming, its distributed architecture handles high-volume data and real-time updates, providing consistent views for even amid intermittent connectivity issues. With the introduction of distributed vector indexing in version 25.2 (released June 2025), CockroachDB facilitates AI/ML integrations by combining vector embeddings for similarity searches with transactional data in a single database, supporting applications like recommendation engines through pgvector-compatible operations. This enables efficient approximate nearest neighbor queries on billions of vectors while preserving data freshness via incremental updates and SQL joins for hybrid workloads. For internal tools, CockroachDB serves as a databases-as-a-service platform for developers, offering multi-tenant isolation and scalable metadata storage to streamline workflows in SaaS backends. It also powers authentication systems with resilient, multi-region IAM, ensuring secure access management for internal applications without single points of failure.

References

Add your contribution
Related Hubs
User Avatar
No comments yet.