Rails’ built-in WebSockets against a managed realtime platform, including where AnyCable fits in that picture.
Action Cable is Rails’ first-party WebSocket layer, and Rails 8’s Solid Cable removed even the Redis requirement. It is the lowest-friction realtime a Rails app can add. Its ceilings are delivery semantics and the Ruby server itself, which is also why AnyCable exists.
When Foony fits
Delivery and recovery. Action Cable broadcasts are fire-and-forget: a client not subscribed at that instant misses the message, and there is no replay. Foony stores, orders, and backfills.
Presence and history as features rather than tables and Turbo hacks.
Headroom without a rewrite: scaling stock Action Cable past a few thousand busy connections is exactly the problem AnyCable was built to solve. A managed platform skips both the problem and the second system.
Latency not bound to a poll: Solid Cable relays through database polling, 0.1 seconds by default.
When Rails Action Cable fits
Rails-native everything: connection auth from the session cookie, channels beside your models, and Turbo Streams riding on it.
Solid Cable means zero extra infrastructure on Rails 8 for modest scale.
AnyCable gives a serious upgrade path (Go server, reliable streams, presence) while keeping your Rails code, free for its open source core.
Features
Foony
Rails Action Cable
Delivery
Effectively exactly once (idempotent publish, client dedup)
Fire and forget, broadcasts are "time-dependent"
History
Per-prefix channel rules, up to 30 days
None client-visible
Presence
Built in, with automatic re-entry on reconnect
Not built in (AnyCable 1.5 added it for AnyCable users)
Relay latency
Push, milliseconds
Solid Cable polls the database, 0.1 s default interval
Operations
Foony
Rails Action Cable
Runtime
Managed service
In your Puma processes, or standalone, worker pool default 4 threads
Cost model
Free tier, then per-message plans from $19/month
Free, runs on your app servers
Scale path
Plans to 150k connections
AnyCable (OSS or Pro at $1,490/year) when Ruby stops keeping up
Competitor numbers last checked July 2026. If something has drifted, tell us and we will fix it.
Moving over
Rails stays the publisher: replace ActionCable.server.broadcast with a REST publish, and mint tokens in a controller with each user’s channel grants. Turbo Streams over Action Cable can stay for server-rendered updates while data-heavy channels move over, the two coexist cleanly.
Try it on the free tier
9M messages a month, presence, history, and the Pusher-compatible API are all on the free plan. No card required.