← Extractions

Cables! Cables! Cables! — Vladimir Dementyev at wroclove.rb 2018

Vladimir Dementyev (Evil Martians) surveys Ruby solutions for real-time web apps, dissecting Action Cable's strengths and weaknesses around memory usage and broadcast latency. He introduces AnyCable, which replaces Action Cable's server with a Go (or Erlang) WebSocket server talking to Rails over gRPC, and covers related projects LiteCable, Iodine, and Plezi.

Model
claude-opus-4-7
Ingestion
31879d5d
Input tokens
392,720
fresh
235,511
cached
149,205
cache write
8,004
Output tokens
14,542
Duration
225.9s
Roundtrips
13
Tool calls
24
Cost
$0.00
Nodes/edges extracted
26 / 48
Read set (nodes/edges)
72 / 2

Nodes (26)

update Vladimir Dementyev person
attrs (empty) {"role" => "developer/open-source author", "location" => "Moscow, Russia"}
description Conference speaker. Conference speaker from Moscow working at Evil Martians. Programs in Ruby, Erlang, Go, and Crystal, and maintains a l...
short_description Conference speaker. Ruby developer at Evil Martians; open-source author of AnyCable and LiteCable.
create Prometheus tool
kind (empty) tool
name (empty) Prometheus
slug (empty) prometheus
attrs (empty) {"category" => "service"}
description (empty) Monitoring system whose metrics format AnyCable exposes from its WebSocket server, enabling Grafana dashboards and al...
short_description (empty) Metrics collection and monitoring system with a pull model.
create Grafana tool
kind (empty) tool
name (empty) Grafana
slug (empty) grafana
attrs (empty) {"category" => "service"}
description (empty) Used alongside Prometheus-compatible AnyCable metrics to build real-time dashboards (total/unique clients, etc.) and ...
short_description (empty) Dashboard and alerting tool for time-series metrics.
create WebSockets concept
kind (empty) concept
name (empty) WebSockets
slug (empty) websockets
attrs (empty) {"category" => "protocol"}
description (empty) Protocol underlying real-time web apps such as chat. Action Cable speaks WebSockets only, which excludes a small perc...
short_description (empty) Bi-directional protocol for persistent client-server communication.
create Real-time Web Applications concept
kind (empty) concept
name (empty) Real-time Web Applications
slug (empty) real-time-web-applications
attrs (empty) {"category" => "architecture"}
description (empty) Applications in which users receive information as soon as it appears elsewhere in the system, without periodic polli...
short_description (empty) Web apps delivering updates instantly without client polling.
create Global Interpreter Lock concept
kind (empty) concept
name (empty) Global Interpreter Lock
slug (empty) global-interpreter-lock
attrs (empty) {"category" => "architecture"}
description (empty) MRI Ruby's GIL, together with suboptimal Matz-Ruby-Moritomo concurrency internals, limits Ruby's suitability for conc...
short_description (empty) MRI Ruby's lock preventing true parallel execution of Ruby threads.
create Zero-Disconnect Deployment concept
kind (empty) concept
name (empty) Zero-Disconnect Deployment
slug (empty) zero-disconnect-deployment
attrs (empty) {"category" => "practice"}
description (empty) Analog of zero-downtime deployment for WebSocket-heavy apps. Reloading a classic Action Cable server disconnects ever...
short_description (empty) Deploying an app without dropping WebSocket connections.
update Cables! Cables! Cables! talk
description Talk at wroclove.rb 2018. Vladimir Dementyev's wroclove.rb 2018 talk surveying Ruby 'cables' (tools for building real-time web applications). R...
short_description Talk at wroclove.rb 2018. Talk on real-time Ruby, Action Cable limitations, and AnyCable.
create Evil Martians company
kind (empty) company
name (empty) Evil Martians
slug (empty) evil-martians
attrs (empty) {"industry" => "software consulting / product development"}
description (empty) Consultancy/product-development shop employing Vladimir Dementyev. Works with big companies and small startups on pro...
short_description (empty) Product development consultancy working with startups and large companies; prolific Ruby OSS.
create Action Cable tool
kind (empty) tool
name (empty) Action Cable
slug (empty) action-cable
attrs (empty) {"category" => "framework"}
description (empty) Framework bundled with Rails for real-time web applications. Composed of four parts: a WebSocket server (runs inside ...
short_description (empty) Rails framework for WebSocket-based real-time features.
create AnyCable project
kind (empty) project
name (empty) AnyCable
slug (empty) anycable
attrs (empty) {"status" => "active", "license" => "open-source"}
description (empty) Open-source project by Vladimir Dementyev that enhances (rather than replaces) Action Cable by extracting the WebSock...
short_description (empty) Drop-in Action Cable replacement with an external Go/Erlang WebSocket server over gRPC.
create LiteCable project
kind (empty) project
name (empty) LiteCable
slug (empty) litecable
attrs (empty) {"status" => "active", "license" => "open-source"}
description (empty) Vladimir Dementyev's Ruby library implementing the Action Cable protocol without depending on Rails or ActiveSupport....
short_description (empty) Rails-free, Action Cable-compatible channels framework compatible with AnyCable.
create Iodine tool
kind (empty) tool
name (empty) Iodine
slug (empty) iodine
attrs (empty) {"category" => "service"}
description (empty) Rack-compatible Ruby web server implemented as a wrapper over a C HTTP framework. CPU- and memory-efficient, alternat...
short_description (empty) C-based high-performance Ruby web server with real-time support.
create Plezi tool
kind (empty) tool
name (empty) Plezi
slug (empty) plezi
attrs (empty) {"category" => "framework"}
description (empty) Ruby framework for building real-time web applications on top of the Iodine web server. Performance-oriented and simp...
short_description (empty) Ruby real-time web framework built on top of Iodine.
create gRPC tool
kind (empty) tool
name (empty) gRPC
slug (empty) grpc
attrs (empty) {"category" => "framework"}
description (empty) Universal RPC framework, popularly attributed to Google (powers many public Google APIs). Uses HTTP/2 (allowing many ...
short_description (empty) Google-born RPC framework using HTTP/2 and Protocol Buffers.
create Protocol Buffers tool
kind (empty) tool
name (empty) Protocol Buffers
slug (empty) protocol-buffers
attrs (empty) {"category" => "library"}
description (empty) Binary wire format with fast (de)serialization and effective implicit compression. Paired with HTTP/2 inside gRPC.
short_description (empty) Google's binary serialization format used by gRPC.
create Go tool
kind (empty) tool
name (empty) Go
slug (empty) go
attrs (empty) {"category" => "language"}
description (empty) Language used for the primary AnyCable WebSocket server implementation. Ships as a single binary and is easy to run, ...
short_description (empty) Statically-typed compiled language suited to concurrent network services.
create Erlang tool
kind (empty) tool
name (empty) Erlang
slug (empty) erlang
attrs (empty) {"category" => "language"}
description (empty) Functional/concurrent language running on the BEAM VM. Used for a secondary AnyCable WebSocket server implementation....
short_description (empty) BEAM-VM language known for soft-realtime concurrency.
create Redis tool
kind (empty) tool
name (empty) Redis
slug (empty) redis
attrs (empty) {"category" => "service"}
description (empty) Used by AnyCable as the default transport for broadcasting messages from the Rails application to the external WebSoc...
short_description (empty) In-memory data store often used as a pub/sub broker.
create Hanami tool
kind (empty) tool
name (empty) Hanami
slug (empty) hanami
attrs (empty) {"category" => "framework"}
description (empty) Ruby web framework. Does not ship its own real-time/cable solution; combined with LiteCable + AnyCable in an Internet...
short_description (empty) Alternative Ruby web framework to Rails.
create Rocket Real-Time Benchmark resource
kind (empty) resource
name (empty) Rocket Real-Time Benchmark
slug (empty) rocket-real-time-benchmark
attrs (empty) {"type" => "repository"}
description (empty) Benchmark written by the 'rocket' company (as presented) that measures real-time performance — the time a server take...
short_description (empty) Benchmark measuring WebSocket broadcast latency across cable implementations.
create Equestrian-Shows Platform Case Study resource
kind (empty) resource
name (empty) Equestrian-Shows Platform Case Study
slug (empty) equestrian-shows-platform-case-study
attrs (empty) {"type" => "case-study"}
description (empty) Real-life usage story of AnyCable told by its owners to Vladimir Dementyev. The platform manages and monitors equestr...
short_description (empty) Production case switching from Action Cable to AnyCable with ~10x cost reduction.
create Extract the slow server out of Ruby takeaway
kind (empty) takeaway
name (empty) Extract the slow server out of Ruby
slug (empty) extract-the-slow-server-out-of-ruby
attrs (empty) {"type" => "recommendation"}
description (empty) For high-performance real-time Ruby apps, leave business logic in Ruby (where it is easiest to write) and move the lo...
short_description (empty) Keep business logic in Ruby, push low-level WebSocket I/O to Go/Erlang.
create Action Cable Crowded-Channel Trade-off takeaway
kind (empty) takeaway
name (empty) Action Cable Crowded-Channel Trade-off
slug (empty) action-cable-crowded-channel-trade-off
attrs (empty) {"type" => "warning"}
description (empty) When using Action Cable you must either tolerate high broadcast latency or avoid crowded channels (channels with many...
short_description (empty) Action Cable is fine up to ~thousands of subscribers per channel; beyond that, switch.
create Start with Action Cable, switch when performance hurts takeaway
kind (empty) takeaway
name (empty) Start with Action Cable, switch when performance hurts
slug (empty) start-with-action-cable-switch-when-performance-hurts
attrs (empty) {"type" => "recommendation"}
description (empty) Many teams (small projects, MVPs) can happily start with Action Cable. Once performance or memory issues bite, the se...
short_description (empty) Use Action Cable for MVPs and small apps; swap in AnyCable when scaling.
create Why two AnyCable server implementations question
kind (empty) question
name (empty) Why two AnyCable server implementations
slug (empty) why-two-anycable-server-implementations
attrs (empty) {"answer_summary" => "Erlang lacked gRPC library; Go prototype became primary because it's easier to run."}
description (empty) Audience question at the end of the talk asking why AnyCable has two WebSocket server implementations. Answer: the sp...
short_description (empty) Audience asked why AnyCable ships both Go and Erlang servers.

Edges (48)

create gRPCusesProtocol Buffers
context (empty) gRPC uses protobuf for wire serialization.
relation (empty) uses
source_node_id (empty) 52c07f52-77b9-46e0-a04d-57af30c94ab9
target_node_id (empty) 36c750b4-667e-4c23-a1e1-4517b927d583
create Action CableusesWebSockets
context (empty) Action Cable is a WebSocket-only server.
relation (empty) uses
source_node_id (empty) 013851e3-4ca1-43b2-ab9a-8c531798c325
target_node_id (empty) aed5cd48-754d-4e28-81ee-a14e040adf2b
create Action CableusesRuby
context (empty) Runs inside MRI Ruby, inheriting GIL-related limitations.
relation (empty) uses
source_node_id (empty) 013851e3-4ca1-43b2-ab9a-8c531798c325
target_node_id (empty) c7f25b33-06c9-460e-aca7-fe993123ebee
update Vladimir DementyevauthoredCables! Cables! Cables!
context (empty) Speaker of the wroclove.rb 2018 talk.
update Cables! Cables! Cables!presented_atwroclove.rb 2018
context (empty) Talk delivered at wroclove.rb on 2018-03-16.
create Vladimir Dementyevattendedwroclove.rb 2018
context (empty) Traveled from Moscow to speak at the conference.
relation (empty) attended
source_node_id (empty) db49cf54-53a3-4357-a923-951ddf06b59b
target_node_id (empty) 9243ef2c-21bb-4f23-b450-9ecd87882dfe
create Vladimir Dementyevworks_atEvil Martians
attrs (empty) {"role" => "developer"}
context (empty) Self-identifies as working at Evil Martians.
relation (empty) works_at
source_node_id (empty) db49cf54-53a3-4357-a923-951ddf06b59b
target_node_id (empty) 4f724c14-2ccc-4769-bd4a-0719505d1188
create Vladimir Dementyevworks_onAnyCable
attrs (empty) {"role" => "creator/maintainer"}
context (empty) Creator and maintainer of AnyCable.
relation (empty) works_on
source_node_id (empty) db49cf54-53a3-4357-a923-951ddf06b59b
target_node_id (empty) 91a3f2b0-4b18-4814-997e-b70b169a9214
create Vladimir Dementyevworks_onLiteCable
attrs (empty) {"role" => "creator"}
context (empty) Built LiteCable as a Rails-free cable framework.
relation (empty) works_on
source_node_id (empty) db49cf54-53a3-4357-a923-951ddf06b59b
target_node_id (empty) 03d501ec-8f88-45e7-b65f-34c2528a2dc9
create Vladimir Dementyevhas_skillRuby
attrs (empty) {"level" => "expert"}
context (empty) Primary programming language.
relation (empty) has_skill
source_node_id (empty) db49cf54-53a3-4357-a923-951ddf06b59b
target_node_id (empty) c7f25b33-06c9-460e-aca7-fe993123ebee
create Vladimir Dementyevhas_skillErlang
context (empty) Uses Erlang among other languages; authored AnyCable's Erlang server.
relation (empty) has_skill
source_node_id (empty) db49cf54-53a3-4357-a923-951ddf06b59b
target_node_id (empty) 53c364ea-6dbe-4a30-9f29-ad30ba08feb1
create Vladimir Dementyevhas_skillGo
context (empty) Learned Go while building AnyCable's Go server.
relation (empty) has_skill
source_node_id (empty) db49cf54-53a3-4357-a923-951ddf06b59b
target_node_id (empty) 05765f80-6e8f-47a6-87e1-77548619f272
create Cables! Cables! Cables!aboutAction Cable
context (empty) Deep dive into Action Cable's architecture, strengths, and weaknesses.
relation (empty) about
source_node_id (empty) 49862192-1473-4288-ba9c-93e8571cf6ff
target_node_id (empty) 013851e3-4ca1-43b2-ab9a-8c531798c325
create Cables! Cables! Cables!aboutAnyCable
context (empty) Introduces AnyCable as a solution to Action Cable's performance problems.
relation (empty) about
source_node_id (empty) 49862192-1473-4288-ba9c-93e8571cf6ff
target_node_id (empty) 91a3f2b0-4b18-4814-997e-b70b169a9214
create Cables! Cables! Cables!aboutLiteCable
context (empty) Presents LiteCable as a Rails-free Action Cable-compatible framework.
relation (empty) about
source_node_id (empty) 49862192-1473-4288-ba9c-93e8571cf6ff
target_node_id (empty) 03d501ec-8f88-45e7-b65f-34c2528a2dc9
create Cables! Cables! Cables!aboutIodine
context (empty) Mentioned as an efficient alternative Ruby web server.
relation (empty) about
source_node_id (empty) 49862192-1473-4288-ba9c-93e8571cf6ff
target_node_id (empty) a7ffd876-5542-42e1-af56-e71b3d8d9aad
create Cables! Cables! Cables!aboutPlezi
context (empty) Described as an in-progress integration target for LiteCable/AnyCable.
relation (empty) about
source_node_id (empty) 49862192-1473-4288-ba9c-93e8571cf6ff
target_node_id (empty) 371ba978-c125-4f5d-a3a6-31e3c6b2371d
create Cables! Cables! Cables!aboutReal-time Web Applications
context (empty) Central subject of the talk.
relation (empty) about
source_node_id (empty) 49862192-1473-4288-ba9c-93e8571cf6ff
target_node_id (empty) 135d680d-6b44-417f-b465-1c2023478fac
create Cables! Cables! Cables!aboutWebSockets
context (empty) Discusses WebSocket-only protocol support and its limitations.
relation (empty) about
source_node_id (empty) 49862192-1473-4288-ba9c-93e8571cf6ff
target_node_id (empty) aed5cd48-754d-4e28-81ee-a14e040adf2b
create Cables! Cables! Cables!aboutgRPC
context (empty) Explains gRPC as the transport between AnyCable's WebSocket server and Rails.
relation (empty) about
source_node_id (empty) 49862192-1473-4288-ba9c-93e8571cf6ff
target_node_id (empty) 52c07f52-77b9-46e0-a04d-57af30c94ab9
create AnyCableusesgRPC
context (empty) WebSocket server proxies Action Cable protocol to Rails via gRPC.
relation (empty) uses
source_node_id (empty) 91a3f2b0-4b18-4814-997e-b70b169a9214
target_node_id (empty) 52c07f52-77b9-46e0-a04d-57af30c94ab9
create AnyCableusesRedis
context (empty) Default broadcasting transport from Rails to AnyCable server.
relation (empty) uses
source_node_id (empty) 91a3f2b0-4b18-4814-997e-b70b169a9214
target_node_id (empty) 4651221d-1a5e-4989-bac2-017a8b614da1
create AnyCableusesGo
context (empty) Primary WebSocket server implementation in Go.
relation (empty) uses
source_node_id (empty) 91a3f2b0-4b18-4814-997e-b70b169a9214
target_node_id (empty) 05765f80-6e8f-47a6-87e1-77548619f272
create AnyCableusesErlang
context (empty) Secondary WebSocket server implementation in Erlang.
relation (empty) uses
source_node_id (empty) 91a3f2b0-4b18-4814-997e-b70b169a9214
target_node_id (empty) 53c364ea-6dbe-4a30-9f29-ad30ba08feb1
create AnyCableusesProtocol Buffers
context (empty) Serialization format via gRPC.
relation (empty) uses
source_node_id (empty) 91a3f2b0-4b18-4814-997e-b70b169a9214
target_node_id (empty) 36c750b4-667e-4c23-a1e1-4517b927d583
create AnyCableusesPrometheus
context (empty) Exposes Prometheus-compatible metrics endpoint.
relation (empty) uses
source_node_id (empty) 91a3f2b0-4b18-4814-997e-b70b169a9214
target_node_id (empty) 4afe605c-464c-4dfe-8493-fada9935e1d0
create LiteCablerelated_toAction Cable
context (empty) Implements the same protocol as Action Cable without Rails dependency.
relation (empty) related_to
source_node_id (empty) 03d501ec-8f88-45e7-b65f-34c2528a2dc9
target_node_id (empty) 013851e3-4ca1-43b2-ab9a-8c531798c325
create LiteCablerelated_toAnyCable
context (empty) Designed to be compatible with AnyCable out of the box.
relation (empty) related_to
source_node_id (empty) 03d501ec-8f88-45e7-b65f-34c2528a2dc9
target_node_id (empty) 91a3f2b0-4b18-4814-997e-b70b169a9214
create LiteCablerelated_toHanami
context (empty) Example integration: LiteCable + AnyCable + Hanami for IoT projects.
relation (empty) related_to
source_node_id (empty) 03d501ec-8f88-45e7-b65f-34c2528a2dc9
target_node_id (empty) 9e549b38-6071-4b4d-88ea-ca5c3d86afa7
create PleziusesIodine
context (empty) Plezi is built on top of the Iodine web server.
relation (empty) uses
source_node_id (empty) 371ba978-c125-4f5d-a3a6-31e3c6b2371d
target_node_id (empty) a7ffd876-5542-42e1-af56-e71b3d8d9aad
create Action Cablerelated_toGlobal Interpreter Lock
context (empty) Cited as a root cause of Action Cable's concurrency limits.
relation (empty) related_to
source_node_id (empty) 013851e3-4ca1-43b2-ab9a-8c531798c325
target_node_id (empty) b2da1bdf-0293-4d62-8478-327f08bd9f7f
create AnyCablerelated_toZero-Disconnect Deployment
context (empty) AnyCable's stateless proxy enables zero-disconnect deployment.
relation (empty) related_to
source_node_id (empty) 91a3f2b0-4b18-4814-997e-b70b169a9214
target_node_id (empty) c03b09d5-7e27-459e-8076-bd14ccca8715
create Equestrian-Shows Platform Case StudyaboutAnyCable
context (empty) Production migration from Action Cable to AnyCable.
relation (empty) about
source_node_id (empty) ffb9fac4-8d0c-47ef-97f1-8f5494c6d391
target_node_id (empty) 91a3f2b0-4b18-4814-997e-b70b169a9214
create Equestrian-Shows Platform Case StudyaboutAction Cable
context (empty) Case study describes prior Action Cable memory problems.
relation (empty) about
source_node_id (empty) ffb9fac4-8d0c-47ef-97f1-8f5494c6d391
target_node_id (empty) 013851e3-4ca1-43b2-ab9a-8c531798c325
create Equestrian-Shows Platform Case StudyaboutHeroku
context (empty) Hosted on Heroku; metrics expressed in dynos.
relation (empty) about
source_node_id (empty) ffb9fac4-8d0c-47ef-97f1-8f5494c6d391
target_node_id (empty) d3785e15-2805-4486-a633-6e785e4f8ae3
create Rocket Real-Time BenchmarkaboutAction Cable
context (empty) Used to measure Action Cable broadcast latency.
relation (empty) about
source_node_id (empty) f357db90-b219-4183-9d52-6f562e5019d6
target_node_id (empty) 013851e3-4ca1-43b2-ab9a-8c531798c325
create Rocket Real-Time BenchmarkaboutAnyCable
context (empty) Used to compare AnyCable (Go/Erlang) against Action Cable.
relation (empty) about
source_node_id (empty) f357db90-b219-4183-9d52-6f562e5019d6
target_node_id (empty) 91a3f2b0-4b18-4814-997e-b70b169a9214
create Extract the slow server out of Rubyfrom_talkCables! Cables! Cables!
context (empty) Guiding principle stated by the speaker.
relation (empty) from_talk
source_node_id (empty) 7c635b53-08a3-4652-b9ff-1fb1e18d7e19
target_node_id (empty) 49862192-1473-4288-ba9c-93e8571cf6ff
create Extract the slow server out of RubyaboutAnyCable
context (empty) Principle that AnyCable embodies.
relation (empty) about
source_node_id (empty) 7c635b53-08a3-4652-b9ff-1fb1e18d7e19
target_node_id (empty) 91a3f2b0-4b18-4814-997e-b70b169a9214
create Action Cable Crowded-Channel Trade-offfrom_talkCables! Cables! Cables!
context (empty) Warning derived from benchmark results.
relation (empty) from_talk
source_node_id (empty) 72128e20-2ead-4ad1-982f-f0822c96be0d
target_node_id (empty) 49862192-1473-4288-ba9c-93e8571cf6ff
create Action Cable Crowded-Channel Trade-offaboutAction Cable
context (empty) Limitation of Action Cable at scale.
relation (empty) about
source_node_id (empty) 72128e20-2ead-4ad1-982f-f0822c96be0d
target_node_id (empty) 013851e3-4ca1-43b2-ab9a-8c531798c325
create Start with Action Cable, switch when performance hurtsfrom_talkCables! Cables! Cables!
context (empty) Closing recommendation.
relation (empty) from_talk
source_node_id (empty) 900c670f-b6c8-478c-bfd0-2c51d76b743a
target_node_id (empty) 49862192-1473-4288-ba9c-93e8571cf6ff
create Start with Action Cable, switch when performance hurtsaboutAnyCable
context (empty) Recommended swap-in when Action Cable hits limits.
relation (empty) about
source_node_id (empty) 900c670f-b6c8-478c-bfd0-2c51d76b743a
target_node_id (empty) 91a3f2b0-4b18-4814-997e-b70b169a9214
create Why two AnyCable server implementationsasked_atCables! Cables! Cables!
context (empty) Audience Q&A.
relation (empty) asked_at
source_node_id (empty) 152458bc-b726-41f1-a07d-011fd80edff8
target_node_id (empty) 49862192-1473-4288-ba9c-93e8571cf6ff
create Why two AnyCable server implementationsaboutAnyCable
context (empty) Question about AnyCable's dual Go/Erlang implementations.
relation (empty) about
source_node_id (empty) 152458bc-b726-41f1-a07d-011fd80edff8
target_node_id (empty) 91a3f2b0-4b18-4814-997e-b70b169a9214
create Cables! Cables! Cables!related_toBetter WebPerformance with Rails
context (empty) Speaker opens by thanking Stefan for the preceding Rails performance talk.
relation (empty) related_to
source_node_id (empty) 49862192-1473-4288-ba9c-93e8571cf6ff
target_node_id (empty) 8a072c53-4edf-401f-8a73-78d7e3b1e763
create Vladimir DementyevrecommendsAnyCable
context (empty) Speaker's own project, recommended for scaling real-time Ruby apps.
relation (empty) recommends
source_node_id (empty) db49cf54-53a3-4357-a923-951ddf06b59b
target_node_id (empty) 91a3f2b0-4b18-4814-997e-b70b169a9214
create Vladimir DementyevrecommendsLiteCable
context (empty) Recommended for non-Rails real-time Ruby apps.
relation (empty) recommends
source_node_id (empty) db49cf54-53a3-4357-a923-951ddf06b59b
target_node_id (empty) 03d501ec-8f88-45e7-b65f-34c2528a2dc9

Read set

72 nodes

talk Orchestrating video transcoding in ruby search_nodes talk When REST is Not Enough: Implementing Alternative Protocols in Ruby on Rails search_nodes talk Building on Bluesky's AT Protocol with Ruby search_nodes tool rails_event_store search_nodes concept Rails Reload-Safe ES Configuration search_nodes talk Building LLM powered applications in Ruby search_nodes talk Business logic in Ruby search_nodes talk Better WebPerformance with Rails search_nodes talk Working with RailsEventStore in Cashflow Management System search_nodes talk UringMachine — High Performance Concurrency for Ruby Using io_uring search_nodes person Vladimir Dementyev search_nodes+get_node_edges talk Applying CQRS & Event Sourcing on Rails applications search_nodes talk Event Sourcing and Actor model in Ruby search_nodes tool Rails 5.2 search_nodes concept Static Page Caching via nginx search_nodes event wroclove.rb 2018 search_nodes event wroclove.rb 2019 search_nodes event wroclove.rb 2024 search_nodes event wroclove.rb 2022 search_nodes event wroclove.rb 2023 search_nodes event wroclove.rb 2026 search_nodes event wroclove.rb 2025 search_nodes talk Counterintuitive Rails pt. 2 search_nodes talk Counterintuitive Rails pt. 1 search_nodes tool HTTP/2 search_nodes tool Brotli search_nodes takeaway Switch on HTTP/2 search_nodes tool Phoenix search_nodes tool Elixir search_nodes tool Heroku search_nodes talk Rubyana Gems and the Ractorous Rubetta Stones! search_nodes talk Spice up your life with eql search_nodes concept Event Store search_nodes talk No-build Utopia: Modern User Experiences with Rails & Web Standards search_nodes talk Cables! Cables! Cables! get_node_edges takeaway Time Travel Superpower search_nodes concept Russian Doll Caching search_nodes concept Cache Preheating search_nodes talk MVCC for Ruby developers search_nodes concept CQRS search_nodes takeaway Per-Event Backups Via Reactors search_nodes talk Fantastic Databases and Where to Find Them search_nodes takeaway Eventual Consistency Trade-off search_nodes tool RealtimeBoard search_nodes talk Events events events search_nodes talk Setup and operation of mutation testing in agentic world search_nodes takeaway Upgrade Ruby version for free speed search_nodes talk JRuby: Professional-Grade Ruby search_nodes tool Ruby search_nodes person Emiliano Della Casa search_nodes talk Introducing Sorbet into your Ruby codebase search_nodes person Julik Tarkhanov search_nodes tool webpagetest.org search_nodes concept Waterfall Analysis search_nodes talk 18 months of using hotwire and viewcomponent in production search_nodes concept HTTP/2 Server Push search_nodes concept HTTP Caching with ETag and Last-Modified search_nodes person Stefan Wintermeyer search_nodes resource Stefan Wintermeyer's Rails 5.2 Book search_nodes person Adam Okoń search_nodes talk Extracting logic from templates with Hanami Views search_nodes talk Towards the post framework future search_nodes talk Building Rails SPAs in Frontend Ruby with Glimmer DSL for Web search_nodes tool Ruby on Rails search_nodes tool Faker search_nodes talk Forms Are Dead: Building Agentic Workflows in Ruby search_nodes concept Command UUID Deduplication search_nodes tool WebP search_nodes tool dry-struct search_nodes talk Adventures in durable execution search_nodes takeaway Replay-Based Debugging search_nodes tool ruby-contracts search_nodes

2 edges