Highly Concurrent Services with Finagle & Clojure
summary
Covers using Twitter's Finagle (a Netty-based JVM RPC library providing service discovery, backpressure and Futures) from Clojure via the finagle-clojure wrapper. Explains how finagle-clojure exposes Finagle's asynchronous Future model to Clojure without awkward Scala interop and includes utilities to run blocking synchronous Clojure libraries safely within Finagle's async runtime. Includes Finagle basics, an overview of finagle-clojure, and production examples.
AI-written summary · about
chapters (21)
- 0:00Start
- 0:21Highly Concurrent RPC on the JVM
- 0:53Finagle with Clojure
- 2:45Why Finagle?
- 3:27Built With Netty
- 4:00Async Values Represented by Futures
- 5:25What blocks?
- 6:19Clients & Servers use Service
- 6:35Protocol Agnostic
- 7:08Clojure JVM Interop :
- 7:23scala *- .class
- 8:22Discovering Generated JVM Classes
- 9:49Finagle wrapper to avoid explicit interop
- 10:20Transforming Futures
- 10:50map flatmap
- 11:34handle rescue
- 12:39Compile Thrift - Java with Scrooge
- 13:10let's talk about dogs
- 32:05Using Blocking Code
- 32:15Runs blocking code on a ThreadPool
- 33:17More Wrappers • Helpers for writing Async code • Type Checking
related talks
52mFinagle: Twitter's RPC library
46mFinagle Under the Hood
24mGluing Clojure Microservices
13mGluing Clojure Microservices
44mFrom REST to CQRS with Clojure, Kafka, & Datomic
52mFast but not Loose: Typesafe Clients in a Distributed Service Architecture
43mFinagle for Beginners
50mOperating Clojure Microservices
