Emiliano Della Casa's wroclove.rb 2026 talk. Opens with why REST is a de facto standard (simple, accessible, Rails-default) and when it isn't enough — arguing that modern apps, especially with the AI revolution, do more than CRUD and that REST is a hammer that doesn't fit every nail. Walks through four alternatives with small Rails demos against the same toy e-commerce order creation service: (1) gRPC — Google, 2015, built on HTTP/2 and Protocol Buffers; high performance, streaming, strong typing, security by design; harder to integrate because client and server must agree on a protofile, and harder to debug because payloads are binary. Demo uses a protofile defining OrderService.CreateOrder with a generated Ruby class and grpcurl as client on port 50051. (2) GraphQL — Facebook, 2015; declarative data fetching/modification; single endpoint; solves REST over-fetching and under-fetching; demoed with the graphql-ruby gem exposing a createOrder mutation called via curl. (3) MQTT — IoT-focused pub/sub protocol with a broker; three quality-of-service levels (0 fire-and-forget, 1 at-least-once, 2 exactly-once); supports bidirectional communication; demoed with the ruby mqtt gem subscribing to an 'orders' topic with Mosquitto as broker and mosquitto_pub as client. Publisher gets no response (fire-and-forget), so error cases require a separate 'order_failed' topic. (4) MCP — Anthropic, 2024; JSON-RPC based; designed for LLMs, token-efficient for them but slower; demoed using the fast-mcp gem exposing a create_order tool consumed by Claude Code. When given a bad product ID, Claude reads the Active Record stack trace and proactively suggests checking the product ID. Concluding recommendations: gRPC for high-performance internal service-to-service, GraphQL for flexible client-driven queries, MQTT for IoT and bidirectional scenarios, MCP for LLM integration. Q&A covers Twirp as a simpler gRPC-style alternative from Twitch, how MQTT compares with WebSockets, and Ryan Townsend's suggestion to use HTTP shared dictionary compression to get JSON payloads close to Protobuf size without a protofile contract.