Describing Microservices using Modern Haskell (Experience Report)
summary
Mu (new-haskell) is a Haskell DSL that generates type-level schemas from industry IDLs like Protocol Buffers and Avro, targets gRPC and GraphQL transports, and uses Template Haskell, generic programming and attribute grammars to produce compile-time-checked message and service types. It successfully runs real RPC servers and clients, but reveals practical pain points: ergonomic holes around type applications/proxies, brittle GADT-style APIs that produce inscrutable errors, and the lack of local abstraction for type-class-based compile-time computation, which forces duplication and fragile instance ordering.
AI-written summary · about
chapters (5)
related talks
46mPainless software development with Haskell
38mMicroservices in Go using Micro
21mProduction Haskell Demystified
27mSimplifying Building and Managing Microservices with Micro
38mMonolith vs. Microservices
24mExecuting Microservice Applications on Serverless, Correctly
38mMicroservices, a bittersweet symphony
23mMicroservices – Sean Smith
