Kronotop is a distributed database system built on FoundationDB that provides Redis-compatible (RESP2/RESP3) interfaces for multiple data models including key-value (stash), document (bucket with BSON storage and querying), and sorted sets (zmap). It features ACID transactions, secondary indexing (including vector search via HNSW), clustering, sharding, replication, and namespace isolation for multi-tenancy. The architecture is modular with clear separation between network handling (Netty), protocol processing, service layers (transaction, session, data services), and storage (volume-based segment store). Key entry points include the server entry point (KronotopInstanceStarter), CLI (kronotop-cli), and control tool (kronotop-ctl). The system relies on external dependencies such as FoundationDB, Netty, Jackson, Lettuce, Guava, JVector, and Typesafe Config. The codebase demonstrates strong engineering practices with reusable components like versionstamp utilities, retry mechanisms, and protocol handling.
OrientDB is a multi-model NoSQL database management system supporting document, graph, object, and relational data models within a single engine. It provides ACID transactions, a SQL-like query language, distributed clustering with automatic sharding and replication, full-text and spatial indexing via Lucene, and a Gremlin graph traversal API. The system is implemented in Java and organized into modular components: a core storage engine with pluggable index structures (SB-Tree, hash, Lucene), a binary client-server protocol, an HTTP REST API, and a web-based administration studio (AngularJS). It includes enterprise features such as backup/restore, metrics monitoring, and security auditing. The architecture follows a plugin-based server model, allowing extensions for authentication, indexing, and custom commands. External dependencies include Dropwizard Metrics, Lucene, Gremlin/TinkerPop, and various compression libraries.