Slide 1

Slide 1 text

Irina Nazarova, Rocky Mountain Ruby 2024 and… me Any Cable Pro Evolution of real-time,

Slide 2

Slide 2 text

Rocky Mountain Ruby 2024 Boulder 2

Slide 3

Slide 3 text

Rocky Mountain Ruby 2024 Boulder 3

Slide 4

Slide 4 text

Rocky Mountain Ruby 2024 Boulder Trivia 4 Vote here now!

Slide 5

Slide 5 text

Rocky Mountain Ruby 2024 Boulder 5 Summer 2008 Built with Powered by

Slide 6

Slide 6 text

Rocky Mountain Ruby 2024 Boulder 6

Slide 7

Slide 7 text

Rocky Mountain Ruby 2024 Boulder Trivia 7 know your heroes

Slide 8

Slide 8 text

Rocky Mountain Ruby 2024 Boulder The key difference 8 -HTTP connection: request, response, CLOSE -WS connection: request, response, STAY OPEN PERFECT FOR REAL-TIME

Slide 9

Slide 9 text

Rocky Mountain Ruby 2024 Boulder Real-time evolution 9 2005 2007 2011 2012 2014 2017 2021 2024 PREHISTORIC DARK AGES FUTURE CAMBRIAN EXPLOSION 💥

Slide 10

Slide 10 text

Rocky Mountain Ruby 2024 Boulder Ira Nazarova CEO The story of AnyCable Vova Dementyev Head of Backend 10

Slide 11

Slide 11 text

Rocky Mountain Ruby 2024 Boulder 11 We support startups building with Rails 🔗evl.ms/railsstack Yabeda 11

Slide 12

Slide 12 text

2015 - 2019

Slide 13

Slide 13 text

Rocky Mountain Ruby 2024 Boulder -First-class built-in support for WebSockets -Chats, noti fi cations, etc. w/o leaving the comfort zone of the framework Rails 5 brings Action Cable 13 2015 Phoenix—2014, Django—2016, Laravel—2024

Slide 14

Slide 14 text

2015

Slide 15

Slide 15 text

Rocky Mountain Ruby 2024 Boulder -Erlang Go server -Redis for multi-node clusters -Action Cable protocol -Rails plug-in-play integration -Open source Vova brings AnyCable 15 2016

Slide 16

Slide 16 text

Rocky Mountain Ruby 2024 Boulder AnyCable in a nutshell 16 System of 3 components: -WS server (Go) -Rails with RPC -Redis

Slide 17

Slide 17 text

Rocky Mountain Ruby 2024 Boulder -10x less RAM usage -Lower latency at scale Motto: "Performant WebSockets for Rails" 17 2016 🥇

Slide 18

Slide 18 text

Rocky Mountain Ruby 2024 Boulder -Action Cable said “You can build real-time features” -AnyCable said “And you can scale them” It aged well 18 WebSockets, caution no longer required!

Slide 19

Slide 19 text

Rocky Mountain Ruby 2024 Boulder The only thing missing was… 19

Slide 20

Slide 20 text

😷 2020 - 2021

Slide 21

Slide 21 text

Rocky Mountain Ruby 2024 Boulder 21 😷

Slide 22

Slide 22 text

Rocky Mountain Ruby 2024 Boulder 22

Slide 23

Slide 23 text

Rocky Mountain Ruby 2024 Boulder Pre Pro era 23 Consulting gigs -Working closely with AnyCable users helped us to better understand our powers and their needs

Slide 24

Slide 24 text

Rocky Mountain Ruby 2024 Boulder Pre Pro era 24 Consulting gigs -Working closely with AnyCable users helped us to better understand our powers and their needs -We learned use cases and industries: GPS tracking, virtual events, edtech, devtools

Slide 25

Slide 25 text

Rocky Mountain Ruby 2024 Boulder -Working closely with AnyCable users helped us to better understand our powers and their needs -We learned use cases and industries: GPS tracking, virtual events, edtech, devtools -As a result, we launched the fi rst major version 1.0! Pre Pro era 25 Consulting gigs

Slide 26

Slide 26 text

Rocky Mountain Ruby 2024 Boulder 26 AnyCable learnings Something about scaling WebSockets Architecture vs. scaling

Slide 27

Slide 27 text

Rocky Mountain Ruby 2024 Boulder 27 Imagine your server as a phone line: ☎ HTTP requests are like brief phone calls: you dial, get information, and hang up. 🌎 WebSocket connections are like the dial-up modem If the two are competing, WebSockets win all resources they need–as seen by our customers

Slide 28

Slide 28 text

Rocky Mountain Ruby 2024 Boulder 28 Realtime/WebSocket requests should be serviced and scaled independently from HTTP

Slide 29

Slide 29 text

Rocky Mountain Ruby 2024 Boulder 29 AnyCable learnings Big apps with scale reached out. For them, we needed tools: -xk6-cable for load testing -wsdirector for scenario-based system tests Ecosystem was missing

Slide 30

Slide 30 text

Rocky Mountain Ruby 2024 Boulder -GraphQL subscriptions -Fallback to long-polling -Voice applications (Twilio Media Streams) AnyCable next 30 What people wanted

Slide 31

Slide 31 text

Build it

Slide 32

Slide 32 text

Rocky Mountain Ruby 2024 Boulder 32 Open-source a communal garden Commercial Pro a professional farm

Slide 33

Slide 33 text

Rocky Mountain Ruby 2024 Boulder 2021 launching the Pro 33 Key Pro feature: 30 - 50% RAM savings (vs. OSS) Binary compression Apollo GraphQL integration Priority support

Slide 34

Slide 34 text

Rocky Mountain Ruby 2024 Boulder 34 – GitHub Container Registry – $990 per year fl at price – EULA – Typeform for signups – Manual emails, calls, invoices – No “license server” Keep it simple! 2021 launching the Pro

Slide 35

Slide 35 text

Rocky Mountain Ruby 2024 Boulder 🇫🇷 Callbell.eu, our first Pro customer 💙 35 Shared inbox for support: WhatsApp, Messenger, Instagram, and Telegram For Callbell low latency is crucial Callbell is 🔥

Slide 36

Slide 36 text

Rocky Mountain Ruby 2024 Boulder 💡Unexpectedly, paying customers turned out to be a lot more engaging and responsive than users of open-source 36

Slide 37

Slide 37 text

2021 - 2024

Slide 38

Slide 38 text

Rocky Mountain Ruby 2024 Boulder 2021 38 Released the client library: -TypeScript support -works with any JS runtime: React Native, Ionic, etc.

Slide 39

Slide 39 text

Rocky Mountain Ruby 2024 Boulder 2021 39 Pushing backend-rendered templates over WebSocket to all connected clients

Slide 40

Slide 40 text

Rocky Mountain Ruby 2024 Boulder 2021 40 ✅ Standalone mode for apps only using WS for Hotwire: – no RPC server – only 2 components out of 3 We wanted to do something extra

Slide 41

Slide 41 text

Rocky Mountain Ruby 2024 Boulder 2021 results 41 Trials: 20 Paying customers: 6 End-year ARR: $6k Consulting revenue: $320k

Slide 42

Slide 42 text

Rocky Mountain Ruby 2024 Boulder 💡The results were not stellar, so we had to focus on other things… 42

Slide 43

Slide 43 text

Rocky Mountain Ruby 2024 Boulder 2022 43 RailsConf 2022 “The pitfalls of realtime-i fi cation” Recorded screencasts Launched newsletter Marketing all-in SUBSCRIBE blog.anycable.io

Slide 44

Slide 44 text

44

Slide 45

Slide 45 text

Rocky Mountain Ruby 2024 Boulder 45 On a real-time scale, connectivity is not that solid and smooth

Slide 46

Slide 46 text

Rocky Mountain Ruby 2024 Boulder 2022 results 46 Trials: 18 Paying customers: 14 End-year ARR: $12k Consulting revenue: $1M 🎉

Slide 47

Slide 47 text

Rocky Mountain Ruby 2024 Boulder 💡With $1M consulting revenue per year, AnyCable became vital for Evil Martians... 47

Slide 48

Slide 48 text

Rocky Mountain Ruby 2024 Boulder ...but the product itself didn't sky-rocket—marketing is not enough 🤔 48

Slide 49

Slide 49 text

Rocky Mountain Ruby 2024 Boulder 2023 49 The paradigm shift -Reliable communication -Simpli fi ed infra -More protocols (Twilio Media Streams, OCPP) -SSE support Move focus from performance to features and DX:

Slide 50

Slide 50 text

Rocky Mountain Ruby 2024 Boulder Exactly-once delivery in WebSockets with AnyCable 50 -Exactly-once delivery of real-time data -Resume WS sessions automatically on deployments (Pro)

Slide 51

Slide 51 text

Rocky Mountain Ruby 2024 Boulder 51 💡We now recommend using AnyCable from day 1 for reliable delivery PERFECT FOR REAL-TIME

Slide 52

Slide 52 text

Rocky Mountain Ruby 2024 Boulder Simplified setup with NATS 52 We added embedded NATS to replace Redis for multi-region deployments for Fly.io

Slide 53

Slide 53 text

Rocky Mountain Ruby 2024 Boulder EV-charging protocol support 53 Testing: UK’s leading EV charging provider Customer: Malaysia's leading EV charging provider 🔗docs.anycable.io/anycable-go/ocpp Use AnyCable to monitor and operate charging stations in real time

Slide 54

Slide 54 text

Rocky Mountain Ruby 2024 Boulder AnyCable: -Gets a WS voice stream from Twilio -Sends chunks it to real-time speech-to-text API -(Proxies other processing steps) -Noti fi es Rails Voice apps 54 Twilio media streams support 🔗 github.com/anycable/anycable-go-sca ff old used by

Slide 55

Slide 55 text

Rocky Mountain Ruby 2024 Boulder -Safari fi nally got support -LLMs (ChatGPT) popularized SSE for response streaming -Use AnyCable for LLM streaming over WS or SSE Server-sent events 55 LLMs' native realtime transport

Slide 56

Slide 56 text

Rocky Mountain Ruby 2024 Boulder AnyCable over SSE 56 No libs attached

Slide 57

Slide 57 text

Rocky Mountain Ruby 2024 Boulder 2023 results 57 Trials: 39 Paying customers: 23 End-year ARR: $21k Consulting revenue: $ 1M

Slide 58

Slide 58 text

Rocky Mountain Ruby 2024 Boulder 2024 58 The even bigger paradigm shift -Serverless JS and other vercels -Universal pub/sub interface (no channels attached) -Managed AnyCable Go beyond Ruby and Rails:

Slide 59

Slide 59 text

Rocky Mountain Ruby 2024 Boulder 59 Vercel Template

Slide 60

Slide 60 text

Rocky Mountain Ruby 2024 Boulder -No RPC component required -Only 1 component out of 3 -Whispering support (client- to-client broadcasting) Simplified pub/sub 60 AnyCable as one component

Slide 61

Slide 61 text

Rocky Mountain Ruby 2024 Boulder Whispering 61 Go to anycable.io now What to whisper 🔗anycable.io

Slide 62

Slide 62 text

Rocky Mountain Ruby 2024 Boulder 62 But what about Managed AnyCable?

Slide 63

Slide 63 text

Rocky Mountain Ruby 2024 Boulder 63 What’s the most e ff i cient way to build a managed service?🧐

Slide 64

Slide 64 text

Rocky Mountain Ruby 2024 Boulder 🔗plus.anycable.io 64 🔗go.anycable.io/gem fi le We launched Managed AnyCable in Alpha

Slide 65

Slide 65 text

Rocky Mountain Ruby 2024 Boulder 65 We added anonymous telemetry to AnyCable-go big open source servers big Pro servers people on old versions PostHog dropping our data Unique servers with over 1k concurrent connections

Slide 66

Slide 66 text

Rocky Mountain Ruby 2024 Boulder 2024 Jan-Aug results 66 Trials: 60 Paying customers: 29 ARR: $30k Consulting revenue: $480k

Slide 67

Slide 67 text

Rocky Mountain Ruby 2024 Boulder 67 💡 New trials are growing which means that our new approach works!

Slide 68

Slide 68 text

Rocky Mountain Ruby 2024 Boulder Today AnyCable is the critical infrastructure powering some of the largest Rails apps 68 $3B legal services SaaS Leading American transit SaaS Malaysia's Leading EV Charging Company communication platform used by 80% of US doctors marketing SaaS with $160M+ revenue

Slide 69

Slide 69 text

Rocky Mountain Ruby 2024 Boulder 💡 Our customers and big use cases give us the confidence to move forward 69

Slide 70

Slide 70 text

Rocky Mountain Ruby 2024 Boulder What we have 70 ✅ Solve a real problem ✅ And for real big use cases ✅ And new cases keep coming up We solved the backend and infra: - integration - scaling - dependability - reliability - no lock on cloud provider

Slide 71

Slide 71 text

Rocky Mountain Ruby 2024 Boulder What we don’t have 71

Slide 72

Slide 72 text

2024-future

Slide 73

Slide 73 text

Rocky Mountain Ruby 2024 Boulder Higher-level abstractions 73 Common tasks must be easy to implement: – UI kits – Collaboration SDK UI-centric real-time

Slide 74

Slide 74 text

Rocky Mountain Ruby 2024 Boulder Simplify and simplify again 74 There’s a lot to be done to be AnyCable easier to reach for: – Guides & tutorials (incl. AI-powered) – Zero-con fi guration installs – Managed AnyCable for production Make it accessible for more engineers

Slide 75

Slide 75 text

Rocky Mountain Ruby 2024 Boulder -WebTransport is coming -Whatever’s the next new thing Future transports 75 AnyCable will integrate with the new realtime tech

Slide 76

Slide 76 text

Rocky Mountain Ruby 2024 Boulder Evolution of … myself 76 Manager ➡ co-founder Contributing to the product strategy A member of the Ruby community

Slide 77

Slide 77 text

Rocky Mountain Ruby 2024 Boulder Evolution of … myself 77 Thanks to the unwavering trust of

Slide 78

Slide 78 text

SF BAY AREA RUBY MEETUP Unwavering… almost!

Slide 79

Slide 79 text

Rocky Mountain Ruby 2024 Boulder 79 This is how we laid out the foundations of AnyCable

Slide 80

Slide 80 text

Thank you! [email protected] x.com/inazarova ✨lu.ma/sfruby✨