Klor: Choreographic Programming in Clojure
summary
Klor is a Clojure-embedded DSL that compiles choreographies at macroexpansion using clojure.tools.analyzer and macros to project a single global program into per-role functions, guaranteeing absence of deadlocks and communication mismatches. It implements a lightweight location type system with agreement types and distinguishes single-arrow moves from double-arrow copies. Runtime options include an in-process core.async simulator and TCP transports; the demo shows REPL-driven development, live redefinition working over a VPN, and small apps (RPC, authentication, tic‑tac‑toe) executing end-to-end.
AI-written summary · about
chapters (8)
- 0:00Introduction and motivation
- 1:46What is choreographic programming
- 7:38Theoretical foundations
- 13:54Demo: The typed DSL and basics
- 20:46Communication and remote procedures
- 28:36Agreement and knowledge sharing
- 31:43Advanced usage and authentication
- 33:59Conclusion and tic-tac-toe demo
related talks
21mKlor: Choreographies for the Working Clojurian
19mChorCaml: Functional Choreographic Programming in OCaml
14mMoldable Live Programming with Clerk
30mHasChor: Functional Choreographic Programming for All
01h 15mEffective Programs - 10 Years of Clojure
22mTowards Lightweight and Efficient Choreographic Cloud Services
35mApplying the paradigms of core.async in ClojureScript
20mChoral: Object-Oriented Choreographic Programming
