When you evaluate a technology partner, you evaluate the technology underneath. What is it built on? What else runs on that foundation? How does it behave at scale, under pressure, when things go wrong?
WorkingAgents – The Orchestrator – is built on Elixir, which runs on the Erlang/OTP platform and the BEAM virtual machine. This is not a trendy framework choice. It is a deliberate infrastructure decision rooted in 40 years of engineering for systems that cannot go down.
Here is what else runs on this technology – and what that means for your AI governance infrastructure.
The Pedigree: Who Else Builds on Erlang/Elixir
WhatsApp – 3 Billion Users, 50 Engineers
WhatsApp’s entire messaging backend runs on Erlang. The numbers: 3 billion users, 140 billion messages per day, 1 million new registrations daily. When Facebook acquired WhatsApp for $19 billion in 2014, the engineering team was 50 people.
Fifty engineers serving 3 billion users. That ratio is not possible on most technology stacks. It is possible on Erlang because the platform was designed for exactly this: massive concurrency with minimal operational overhead. Each connected user gets their own lightweight process on the BEAM VM. Processes crash and restart without affecting other users. Hot code upgrades deploy new features without disconnecting anyone.
WhatsApp’s uptime: 99.99%.
Discord – 11 Million Concurrent Users on Elixir
Discord built its real-time messaging infrastructure on Elixir. Five engineers operate 20+ Elixir services handling 11 million concurrent users and 26 million WebSocket events per second.
The architecture: one BEAM process per Discord server (guild) as the central routing point, one process per connected client. When a user sends a message, the guild process routes it to every connected member’s process. All of this runs on the same BEAM VM that powers WhatsApp.
Discord started at 5 million concurrent users on pure Elixir. To push past that, they used Rustler (Rust NIFs) to optimize a single hot data structure, reaching 11 million concurrent. The rest of the stack remained Elixir.
Cisco – 90% of Internet Traffic
Cisco ships 2 million Erlang-powered network devices per year. Their claim: 90% of all internet traffic passes through Erlang-controlled nodes. Routers, switches, and network infrastructure that form the backbone of the internet run on the same platform WorkingAgents runs on.
Why Erlang for network infrastructure? The same reason as telecom, messaging, and governance: it cannot go down, it must handle massive concurrency, and it must be upgradeable without downtime.
Ericsson – The Origin, and Nine Nines
Ericsson invented Erlang in the 1980s to solve a specific problem: telephone switches needed to handle millions of concurrent calls with zero downtime. They could not tell customers “we are restarting the phone network for maintenance.”
The AXD 301 ATM switch – 2 million lines of Erlang – achieved 99.9999999% availability (nine nines) during a British Telecom trial. That is 31.6 milliseconds of downtime per year. Not per day. Per year.
Erlang now powers Ericsson’s GPRS, 3G, 4G, and 5G infrastructure. The technology that handles your phone calls, your mobile data, and your network connections runs on the same virtual machine as WorkingAgents.
RabbitMQ – The World’s Most Deployed Message Broker
RabbitMQ is built entirely on Erlang. It is the most widely deployed open-source message broker in the world, used by Goldman Sachs and thousands of other organizations for reliable message delivery.
Why Erlang for a message broker? Supervision trees provide automatic failure recovery. Process isolation means a crashed queue does not affect other queues. Distribution primitives enable clustering across nodes for high availability.
RabbitMQ handles the same fundamental problem WorkingAgents handles: routing messages between systems reliably, at scale, without losing data.
Pinterest – $2 Million/Year Saved by Switching to Elixir
Pinterest rebuilt their notification delivery system in Elixir. The result: 14,000 notifications per second, 6 million HTTP requests per second, 500,000 database transactions per second.
The infrastructure reduction: from 30 Java servers down to 15 Elixir servers. The code reduction: from 10,000 lines of Java to 1,000 lines of Elixir. The cost savings: over $2 million per year in server costs.
Same workload. Half the servers. One-tenth the code. Two million dollars saved annually.
Bleacher Report – 150 Servers Down to 5
Bleacher Report migrated from Ruby on Rails to Elixir/Phoenix. They handle 1.5 billion page views per month, 200 million push notifications per day, and 200,000+ concurrent mobile app requests.
The infrastructure reduction: from 150 servers down to 5. During the 2017 NFL Draft, concurrent users exceeded projections by 30,000. The platform stayed stable with traffic-independent response times. The system did not slow down under unexpected load – it handled it without intervention.
Bet365 – Real-Time Betting at World Cup Scale
Bet365 rebuilt their InPlay real-time betting platform from Java to Erlang and Elixir. The system serves 20+ million users with up to 2 million simultaneous connections, processing thousands of updates per second during major sporting events.
Java could not scale further. Erlang could. During the World Cup, the Super Bowl, and Champions League finals – the highest-traffic moments in online betting – the system holds.
Klarna – Millions of Financial Transactions Daily
Klarna’s core payment transaction system runs on Erlang. 150+ million consumers globally. Millions of transactions daily. Real-time payment processing where latency and availability directly affect revenue.
Erlang Solutions tuned Klarna’s stack for 100% uptime. When money is moving, the system cannot pause for garbage collection, cannot lose messages, and cannot go down for maintenance.
Goldman Sachs – High-Frequency Trading
Goldman Sachs uses Erlang for parts of their high-frequency trading platform. Microsecond-level latency for event-driven market data processing, strategy evaluation, and order submission. When nanoseconds matter and failures cost millions, they chose Erlang.
Why This Technology – The Architecture That Makes It Possible
Understanding why these companies chose Erlang/Elixir requires understanding what the BEAM virtual machine does differently from every other runtime.
Lightweight Processes – Millions of Concurrent Operations
Each BEAM process starts with approximately 2.5 KB of memory. Process creation takes microseconds. A single machine can run millions of concurrent processes.
For WorkingAgents, this means: every connected agent, every tool call, every guardrail check, every audit log entry runs in its own isolated process. Thousands of agents making thousands of tool calls simultaneously – each one isolated, each one supervised, each one recoverable.
On Java or Go, this level of concurrency requires thread pools, connection pools, and careful resource management. On the BEAM, it is the default behavior.
Process Isolation – One Crash Does Not Take Down the System
BEAM processes share no memory. A crash in one process cannot corrupt another process’s state. This is not a convention or a best practice – it is a hardware-level guarantee of the virtual machine.
For WorkingAgents: if a guardrail check crashes on a malformed input, only that specific check restarts. Every other agent, every other tool call, every other audit log operation continues unaffected. The crash is logged, the process restarts in a known-good state, and the system continues.
Compare this to a Node.js or Python application where an uncaught exception in one request handler can crash the entire process, affecting every connected user.
Supervision Trees – Self-Healing by Design
OTP supervision trees are hierarchical process management structures. Supervisors are processes whose sole job is monitoring child processes and restarting them on failure.
The “let it crash” philosophy: rather than wrapping every operation in try/catch blocks and handling every possible error, processes are designed to crash on unexpected errors and be restarted in a known-good state by their supervisor. The supervisor decides the restart strategy:
- One-for-one – restart only the crashed process
- One-for-all – restart all sibling processes (useful when they share interdependent state)
- Rest-for-one – restart the crashed process and everything started after it
Supervision trees nest arbitrarily deep, isolating failure domains. A crash in a leaf process affects only its immediate subtree, not the entire application.
For WorkingAgents: the MCP Gateway, the AI Gateway, the Agent Gateway, the audit system, the permission engine – each runs under its own supervision tree. A failure in the audit logging system does not affect the permission engine. A crash in one agent’s guardrail check does not affect another agent’s tool call. The system heals itself, automatically, without human intervention.
No Stop-the-World Garbage Collection
The BEAM garbage-collects each process independently. There are no stop-the-world pauses. GC latency is bounded to individual processes, keeping system-wide latency in the microsecond-to-millisecond range regardless of how many processes are running.
Java’s garbage collector can pause the entire JVM for hundreds of milliseconds during a major collection – an eternity for real-time systems. Go is better but still has global GC pauses. The BEAM has none. Each process collects its own garbage on its own schedule.
For WorkingAgents: when an agent makes a tool call that triggers a guardrail check, the response time is predictable. No sudden pauses because a different part of the system decided to garbage-collect. Consistent, bounded latency on every operation.
Hot Code Swapping – Zero-Downtime Upgrades
The BEAM can run two versions of a module simultaneously. Processes running old code continue executing. When they make an external call, they transition to the new version. OTP provides explicit state migration callbacks during upgrades.
This was designed for telephone switches that could never go down. It means WorkingAgents can be upgraded – new guardrail rules, new permission models, new audit formats – without disconnecting a single agent, dropping a single tool call, or losing a single audit record.
Built-In Distribution – Clustering Without Libraries
Erlang has built-in distributed computing primitives. Message passing works identically whether the target process is on the same machine or on a different machine in a different data center. No special libraries, no service mesh, no message queue middleware.
For WorkingAgents: scaling from one server to a cluster is not a rewrite. The same code that routes tool calls on a single machine routes them across a cluster. Distribution is built into the platform, not bolted on.
Preemptive Scheduling – No Process Can Starve the System
The BEAM uses preemptive, reduction-based scheduling. Every process gets a fixed quantum of execution time (~4,000 function calls) before being suspended, regardless of what it is doing. No single process can monopolize the CPU.
Go uses cooperative scheduling – goroutines must voluntarily yield. A tight loop in one goroutine can starve others. The BEAM makes this impossible. Every process gets fair access to CPU, always.
For WorkingAgents: even if an agent triggers an expensive guardrail computation, every other agent’s operations continue without delay. The scheduler guarantees fairness across all concurrent operations.
What This Means for Your AI Governance Infrastructure
Scalability
WorkingAgents inherits the same concurrency model that lets WhatsApp serve 3 billion users with 50 engineers, Discord handle 11 million concurrent connections with 5 engineers, and Bleacher Report reduce 150 servers to 5.
As your AI agent count grows from 10 to 100 to 10,000, WorkingAgents scales with lightweight processes – not thread pools, not container orchestration, not auto-scaling groups watching CPU metrics. Each agent, each tool call, each guardrail check is a lightweight process that costs 2.5 KB of memory and microseconds to create.
Reliability
WorkingAgents inherits the same fault-tolerance model that gave Ericsson nine nines of uptime, that keeps Cisco’s network infrastructure running 90% of the world’s internet traffic, and that processes Klarna’s financial transactions with 100% uptime targets.
Supervision trees mean the system self-heals. Process isolation means one failure does not cascade. Per-process garbage collection means no latency spikes. This is not aspirational architecture – it is the proven behavior of the platform across 40 years of production deployments in telecom, finance, and messaging.
Flexibility
WorkingAgents inherits the same hot-code-swapping capability that lets WhatsApp deploy updates without disconnecting users and Ericsson upgrade phone switches without dropping calls.
New guardrail rules, new permission models, new compliance requirements, new tool integrations – deployed without downtime, without disconnecting agents, without losing audit data. Your governance infrastructure evolves as fast as your AI deployment evolves.
Operational Simplicity
The pattern repeats across every case study: Elixir/Erlang systems require dramatically fewer servers and smaller teams than equivalent Java, Ruby, or Python deployments.
- Pinterest: 30 Java servers to 15 Elixir servers, $2M/year saved
- Bleacher Report: 150 servers to 5
- WhatsApp: 50 engineers for 3 billion users
- Discord: 5 engineers for 20+ services handling 11 million concurrent users
WorkingAgents’ operational footprint follows the same pattern. One instance per customer. One server handling what would require a cluster on other platforms. Lower infrastructure cost. Smaller operational team. More reliable behavior under load.
The Partnership Proposition
When you partner with WorkingAgents, you are not betting on a startup’s custom framework or an unproven technology stack. You are betting on the same platform that:
- Handles your phone calls (Ericsson)
- Routes your internet traffic (Cisco)
- Delivers your messages (WhatsApp)
- Powers your real-time gaming communications (Discord)
- Processes your payments (Klarna)
- Executes your financial trades (Goldman Sachs)
- Delivers your sports notifications (Bleacher Report)
- Routes your application messages (RabbitMQ)
These are not experimental deployments. They are production systems serving billions of users, processing trillions of messages, handling millions of financial transactions – running for years and decades with uptimes that other platforms cannot match.
WorkingAgents applies this same technology to AI agent governance. The MCP Gateway that routes your agent tool calls uses the same concurrency model as Discord routing 26 million WebSocket events per second. The supervision trees that self-heal your governance infrastructure use the same OTP patterns as Ericsson’s telephone switches achieving nine nines. The per-process isolation that prevents one agent’s crash from affecting another uses the same BEAM guarantees that keep WhatsApp’s 3 billion users connected.
The question is not whether the technology can handle your scale. The technology handles the world’s scale. The question is whether you want your AI governance built on the same foundation as the most reliable infrastructure on the planet.
Sources:
- How WhatsApp Scaled to 1 Billion Users with 50 Engineers
- WhatsApp Erlang Architecture – 2 Billion Users
- How Discord Scaled Elixir to 5,000,000 Concurrent Users
- Discord Used Rust to Scale Elixir to 11 Million Concurrent Users
- Cisco – 90% of Internet Traffic Through Erlang Nodes
- Erlang’s 99.9999999% Reliability – Ericsson AXD 301
- Erlang/OTP in the Telecom World
- RabbitMQ – An Amazing Message Broker
- Elixir Saves Pinterest $2 Million a Year
- Why Pinterest Moved to Elixir
- Bleacher Report Case Study – Erlang Solutions
- Bet365 Case Study – Erlang Solutions
- Klarna Case Study – Erlang Solutions
- Erlang and Elixir in FinTech
- The Road to 2 Million WebSocket Connections in Phoenix
- How the Erlang BEAM VM Achieves Low Latency
- Deep Diving Into the Erlang Scheduler
- Process-Based Concurrency: Why BEAM and OTP Keep Being Right
- A Guide to Hot Code Reloading in Elixir
- Companies Using Erlang – Erlang Solutions