Modern distributed software is polyglot. A cloud backend might have microservices written in Go, low-latency data pipelines in Rust, web APIs in TypeScript/Node, iOS clients in Swift, and Android/JVM services in Kotlin.
Yet, when working across different language ecosystems, caching semantics are wildly fragmented:
- Eviction policies behave differently ($O(1)$ LRU vs probabilistic vs FIFO).
- Concurrency models handle mutex contention and clock drift inconsistently.
- Dependency bloat drags dozens of third-party packages into otherwise clean microservices.
To solve this, we engineered KVDock natively across 5 languages with zero external dependencies in core and unified memory/concurrency semantics.
Here is what we learned building high-performance key-value engines across Rust, Go, TypeScript, Swift, and Kotlin.
1. Rust (kvdock-rs): Monotonic Clocks & Zero Lock Contention
In systems programming, relying on wall-clock time (SystemTime) for TTL eviction is dangerous because NTP clock synchronizations or leap seconds can cause erratic cache expirations.
In kvdock-rs, we enforce TTL using monotonic Instant:
use kvdock_rs::{KVDock, MemoryAdapter}; use std::time::Duration; #[tokio::main] async fn main() { let adapter = MemoryAdapter::new(10_000); let dock = KVDock::new(adapter).with_default_ttl(Duration::from_secs(60)); // Single-flight stampede coalescing in Rust let session = dock.get_or_set("user:session:101", || async { fetch_user_from_db().await }).await; } - Concurrency: Thread-safe
KVDock<A>backed by read-write locks for sub-microsecond concurrent reads. - Eviction: True $O(1)$ LRU with doubly-linked intrusive pointers.
2. Go (kvdock-go): Generics & Singleflight Mutexes
Go 1.18+ generics revolutionized type-safe caching without interface{} type assertions:
package main import ( "context" "time" "github.com/zisam-glitch/kvdock-go" ) type UserSession struct { UserID string Role string } func main() { dock := kvdock.New(kvdock.WithMemoryAdapter(10000), kvdock.WithTTL(60 * time.Second)) // Generic type-safe get or set val, err := kvdock.GetOrSet[UserSession](dock, context.Background(), "user:101", func() (UserSession, error) { return queryUserFromDB() }) } - Concurrency: Combines atomic operational telemetry with internal single-flight deduplication to ensure concurrent Goroutines requesting the same missing key coalesce into a single execution.
3. TypeScript (kvdock): Zero Dependencies & Universal Runtimes
JavaScript runtimes are now fragmented across Node.js, Bun, Deno, and Cloudflare Workers:
import { KVDock, TieredDock } from "kvdock"; import { MemoryAdapter } from "kvdock/adapters/memory"; import { RedisAdapter } from "kvdock/adapters/redis"; const dock = new TieredDock({ l1: new MemoryAdapter({ maxSize: 10_000 }), // In-memory L1 (< 0.05ms) l2: new RedisAdapter({ url: process.env.REDIS_URL }), // Distributed L2 l1TTL: 15_000 }); - Key Innovation: Zero runtime dependencies in core. Tree-shakeable dual ESM/CJS exports with single-flight promise coalescing that reduces database stampedes by 99.9%.
4. Swift (kvdock-swift): Swift 6 Concurrency & Actor Isolation
In modern Swift, data races are caught at compile-time using structured concurrency:
import KVDockSwift let dock = await KVDock( adapter: MemoryAdapter(capacity: 10_000), defaultTTL: .seconds(60) ) // Actor-isolated thread-safe access let user = try await dock.getOrSet("user:profile") { try await fetchUserProfile() } - Uses
ContinuousClockfor nanosecond monotonic TTL expiration.
5. Kotlin (kvdock-kt): Access-Order LRU & Coroutines
On the JVM and Android, coroutine compatibility and low memory overhead are paramount:
import com.kvdock.KVDock import com.kvdock.adapters.MemoryAdapter import kotlin.time.Duration.Companion.minutes val dock = KVDock(MemoryAdapter(maxSize = 10_000), defaultTTL = 1.minutes) val order = dock.getOrSet("order:7788") { fetchOrderFromDatabase() } The Polyglot Ecosystem on GitHub
Explore the source code, benchmarks, and architectures:
- TypeScript Engine: github.com/zisam-glitch/kvdock
- Rust Engine: github.com/zisam-glitch/kvdock-rs
- Go Engine: github.com/zisam-glitch/kvdock-go
- Swift Engine: github.com/zisam-glitch/kvdock-swift
- Kotlin Engine: github.com/zisam-glitch/kvdock-kt
⭐ Star the repos & follow @zisam-glitch for deep dives into low-latency systems architecture!
