Tutorials
End-to-end examples — from `Result` error handling to async pipelines.
Tutorials are recipe-style walkthroughs. Each one starts from a concrete problem and ends with running code.
- tutorials · May 16, 2026
Error handling with Result
Replace try/catch ladders and Optional chains with a Result-based workflow that keeps the reason for every failure.
- tutorials · May 17, 2026
Async pipelines with CompletableFutureQueue
Build async pipelines as values, hand them around, and apply them when the input arrives — without writing the same supplyAsync/thenComposeAsync ladder twice.
- tutorials · May 17, 2026
Pattern matching with Case
Replace if/else cascades and switch ladders with declarative Case branches that each yield a Result.
- tutorials · May 17, 2026
Memoizing expensive computations
Wrap a pure function in Memoizer.memoize and the next call with the same arguments returns instantly. Works for Supplier, Function, BiFunction and TriFunction — including legacy method references.
- tutorials · May 17, 2026
Working with checked exceptions
Lift throwing JDK methods into Result-returning functions, drop the try/catch ladder, and use the result in Streams.
- tutorials · May 17, 2026
Composing functions
andThen, compose, currying — and the type-inference traps that bite when you chain them inline.
- tutorials · May 17, 2026
Streams meet functions
Stop inlining lambdas into every Stream pipeline. Treat filters and pipelines as values you can name, reuse and compose.
- tutorials · May 17, 2026
Reactive from scratch — building an Observer
What 'reactive' actually means in Core Java, built up step by step from a 30-line Observable to something you would not want to maintain — and why you reach for CompletableFuture next.
- tutorials · May 17, 2026
CompletableFuture for the impatient
The JDK's async primitive in ten minutes — supplyAsync, join/get/getNow/thenAccept, ThreadPools and multi-stage pipelines.