automation · July 2026
Polyglot Bridge
A cross-language RPC mesh built from scratch — zero third-party dependencies. A C# WPF frontend, a Java 21 scheduler, and Rust workers speak one hand-designed binary protocol to process images across a network. Kill a worker mid-job and its tiles reroute to survivors before you notice.
Tornike Kalandadze — software engineer & technical lead, client delivery since 2019 · Tbilisi (GMT+4)
Problem
Cross-language systems usually mean gRPC and a pile of codegen — and you never learn what actually crosses the wire. The challenge: make C#, Java, and Rust cooperate on real distributed work with nothing but their standard libraries.
Approach
Design the protocol first, then implement it three times. A fixed 20-byte frame header with correlation ids makes every request traceable across languages; UDP discovery plus 1-second heartbeats make membership self-managing; and a Python conformance suite generates test vectors all three implementations must match byte-for-byte — the contract is enforced, not documented.
Impact
A self-healing compute mesh: workers can be killed mid-job and the scheduler reroutes their tiles to survivors within a heartbeat window. Near-linear scaling to ~467 tiles/s on four workers, a live topology map showing the mesh breathe, and proof that three runtimes can share one protocol with zero dependencies.
Through every lens
01 · Full-stack
Three stacks in one system — a C# WPF control surface, a Java 21 virtual-thread scheduler, Rust worker nodes — glued by a hand-designed binary protocol instead of a framework.
04 · Automation
Membership runs itself: UDP discovery every 2s, heartbeats every 1s, silent-for-3.5s nodes evicted and their in-flight tiles rescheduled to the least-loaded survivor — no operator, no restart, no lost work.
Built with
C# / .NET 8 · WPF · Java 21 · Rust · TCP/UDP sockets · Custom binary protocol · Python (conformance suite)
Notes
Three languages, one wire format, no frameworks. Every frame carries a 20-byte header — magic 'PBRG', version, message type, flags, a 64-bit correlation id — over TCP, while UDP broadcasts discover nodes every 2 seconds. Heartbeats tick every second; a node silent for 3.5 seconds is evicted and its in-flight tiles reschedule immediately. A Python-generated conformance suite proves all three implementations produce byte-identical frames, so C#, Java, and Rust can never drift apart. The frontend renders a live animated topology map with per-node load bars and traffic pulses; the scheduler routes each tile to the least-loaded capable worker. One worker blurs ~194 tiles/s on a 2048×2048 image; four reach ~467.