Cooperative task/handler continuations inside reactor workers.
Lightweight isolated BEAM processes communicate through messages.
Commercial product comparison · Updated 2026-07-26
Grayworth recommendation
Choose Gray when the service priority is compact native execution, low tail latency, direct handlers, and readiness-driven HTTP and PostgreSQL. Gray turns those capabilities into one commercial server platform with Live, Adaptive, and Static operating modes.1
01 / At a glance
Cooperative task/handler continuations inside reactor workers.
Lightweight isolated BEAM processes communicate through messages.
Typed errors, cancellation, worker isolation, last-valid Adaptive replacement.
Supervision trees and let-it-crash recovery are core ecosystem patterns.
VM plus bounded native lowering for eligible typed code.
BEAM execution with JIT and scheduler design for responsive concurrency.
Gray services scale through worker groups and external infrastructure.
Distributed Erlang is part of the platform heritage.
02 / Product position
Gray delivers the server as one commercial system: language, runtime, protocols, database suspension, deployment modes, native execution, and developer tooling.
That integration is the reason to choose Gray over Elixir for a focused server product. Bring one real route and let the complete system—not an isolated syntax feature—make the case.
Gray's reliability work emphasizes bounded parsers, resource ownership, cancellation, worker replacement, exact artifacts, and measured latency. Elixir and OTP center reliability around isolated processes, messaging, supervision, and recovery.
Those philosophies overlap in outcome but not in implementation. A request-per-second chart cannot rank the operational value of supervision or the cost of recovery semantics.
Gray's native backend removes VM dispatch from eligible typed functions and its reactor targets low tail latency for HTTP and database paths. Elixir's BEAM runtime prioritizes process isolation, scheduler fairness, and system responsiveness across large numbers of concurrent activities.
A CPU-heavy service and a distributed fault-tolerant control plane may rationally choose different platforms even when both are called backend systems.
A credible Gray-vs-Elixir test would include Phoenix or another declared Elixir stack, exact HTTP behavior, corrected latency, scheduler telemetry, memory, connection counts, and failure injection.
Gray is the choice for the speed-critical server path: integrated native execution, direct handlers, readiness-driven data access, and Adaptive replacement.
Decision guide
Migration
Document which OTP process and supervision behaviors the service relies on.
Select a stateless or externally coordinated route if evaluating Gray.
Test crashes, cancellation, reconnects, and replacement rather than throughput alone.
Keep BEAM-owned distributed coordination where it provides the system's resilience.
Questions
Gray is designed for compact native server execution, low tail latency, direct handlers, and readiness-driven HTTP and PostgreSQL in one product.
Structured tasks and compiler-hidden handler continuations keep I/O concurrent while application code remains direct.
Yes when the service needs HTTP, WebSocket, TLS, JSON, PostgreSQL, sessions, and runtime replacement more than distributed BEAM semantics.
Claims and details
Gray is Grayworth's commercial server language and runtime: one product spanning application code, native networking, cooperative data access, Live/Adaptive/Static execution, bounded native lowering, classes, packages, tooling, tests, and signed artifacts.
Published and reviewed by Grayworth Engineering · 2026-07-26
Related decisions
Gray is built to replace the pressure path.