← Graph

AnyCable

project 17 connections

Open-source project by Vladimir Dementyev that enhances (rather than replaces) Action Cable by extracting the WebSocket server out of MRI. Clients connect to an external WebSocket server written in Go (or Erlang), which proxies Action Cable protocol messages to the Rails application over gRPC (HTTP/2 + protobuf). Redis (or similar) is used to broadcast messages from the app back to the WebSocket server, which fans them out to clients. Supports nearly all Action Cable features with almost no channel rewrites. Offers additional capabilities: zero-disconnect deployment (the stateless proxy stays up while the Rails app is reloaded, avoiding thundering-herd reconnects), and a Prometheus-compatible metrics endpoint for Grafana dashboards and alerting. In a production case study (equestrian-shows platform), migrating from Action Cable to AnyCable took a couple of weeks and reduced Heroku usage from 21 2×-dynos (1 GB each) to 4 smaller dynos, ~10× cost reduction.

status
active
license
open-source
about
AnyCable project
Introduces AnyCable as a solution to Action Cable's performance problems.
about
AnyCable project
Production migration from Action Cable to AnyCable.
about
AnyCable project
Used to compare AnyCable (Go/Erlang) against Action Cable.
about
AnyCable project
Principle that AnyCable embodies.
Recommended swap-in when Action Cable hits limits.
about
AnyCable project
Question about AnyCable's dual Go/Erlang implementations.
Mentioned as extending Action Cable for going further than Hotwire defaults.
recommends
AnyCable project
Speaker's own project, recommended for scaling real-time Ruby apps.
project AnyCable
related_to
AnyCable's stateless proxy enables zero-disconnect deployment.
project LiteCable
related_to
AnyCable project
Designed to be compatible with AnyCable out of the box.
project AnyCable
uses
Prometheus tool
Exposes Prometheus-compatible metrics endpoint.
project AnyCable
uses
gRPC tool
WebSocket server proxies Action Cable protocol to Rails via gRPC.
project AnyCable
uses
Redis tool
Default broadcasting transport from Rails to AnyCable server.
project AnyCable
uses
Go tool
Primary WebSocket server implementation in Go.
project AnyCable
uses
Erlang tool
Secondary WebSocket server implementation in Erlang.
project AnyCable
uses
Serialization format via gRPC.
works_on
AnyCable project
Creator and maintainer of AnyCable.
role: creator/maintainer

Provenance

Read by
31 extractions