Finagle for Beginners
summary
Builds a distributed temperature service: a sensor writes points to an in-memory server, clients call thrift RPCs (Scrooge-generated) and an HTTP API (Finch) returns the mean. Uses Zookeeper service-sets for discovery (announce via zk path), prefers thriftm (multiplexed thrift), and creates clients with zk2 destinations. Dynamic routing uses Dtabs for per-request routing and metadata lives in broadcast request context values. Claims: runs in production over four years, survives DNS outages, and removes homegrown failure handling.
AI-written summary · about
chapters (19)
- 0:00Intro
- 0:33What is finagle
- 4:03Flags
- 6:16Service definition
- 7:42Scrooge - Code Generation
- 9:52Services - Theory
- 10:35Services - Server
- 11:44Services - Client
- 17:26A service must have a name
- 19:36Creating a Thrift Client
- 22:12Finch
- 26:04#1 Recap
- 28:08Important properties
- 31:23Changing the destination
- 32:50HTTP Dtab Header
- 33:50Contexts
- 37:50#2 Recap
- 38:22Next steps
- 39:54Resources
related talks
46mFinagle Under the Hood
52mFinagle: Twitter's RPC library
52mFast but not Loose: Typesafe Clients in a Distributed Service Architecture
49mScala Server Toolkit: How to Write A FP Microservice Step-by-step
38mScaling FHIR with microservices
36mHighly Concurrent Services with Finagle & Clojure
42mDistributed Monitoring: How to understand the Chaos
39mArchitectural design patterns applied to Distributed Systems
