All 41 articles, sorted alphabetically
Scala 3 contextual abstraction
Deep-dive on Scala 3's redesigned implicits: given instances and using clauses, type-class composition and Mirror-based deriv…
Read article →Scala 3 metaprogramming
Deep-dive on Scala 3 metaprogramming: inline defs and compile-time branching, typed quotes and splices, macro construction, Mirror-based structural re…
Read article →Scala 3 opaque types architecture
Deep-dive on Scala 3 opaque types: distinct compile-time types over a primitive with companion-scoped equivalence, smart constructors that validate on…
Read article →Akka Cluster architecture
Deep-dive on Akka Cluster: seed nodes, gossip convergence, phi-accrual failure detector, split brain resolver, cluster sharding, singleton, distribute…
Read article →Akka HTTP -- streaming-first HTTP on actors and streams
Deep-dive on Akka HTTP: the composable directive routing DSL, marshalling, the Akka Streams entity foundation, end-to-end backpressure, connection poo…
Read article →Akka
How Akka implements the actor model for Scala and Java, powering distributed systems.
Read article →Akka Persistence architecture
Deep-dive on Akka Persistence: EventSourcedBehavior command/event handlers, journal plugins and sequence integrity, snapshot-bounded recovery, seriali…
Read article →Akka Streams
Backpressure. Reactive Streams.
Read article →Akka Typed Actors
Compile-time message type safety.
Read article →Caliban GraphQL architecture
Deep-dive on Caliban: compile-time schema derivation from Scala types, ZIO field resolvers, ZQuery automatic batching to defeat N+1, composable wrappe…
Read article →Scala Case Classes
How case classes model immutable data, why they include equality, copy, and pattern matching for free, and how to design case class hierarchies.
Read article →Cats Effect
How Cats Effect provides the effect system that underlies many Scala functional libraries.
Read article →Scala Collections
The Scala collections library: List, Vector, Map, Set, and when to use each. Immutable versus mutable trade-offs.
Read article →Scala collections performance
Deep-dive on Scala collections performance: List/Vector/Array/Map operation costs, strict vs view vs iterator transforms, intermediate-collection allo…
Read article →Scala Doobie
How Doobie provides purely functional JDBC access for Scala.
Read article →Finagle architecture — Service/Filter composition, P2C load balancing, retry budgets, and Mux
Deep-dive on Finagle RPC: the Service-as-function abstraction, filter and stack composition, name resolution and dtabs, power-of-two-choices and apert…
Read article →fs2 streaming architecture
Deep-dive on fs2: the Pull-based demand-driven core, chunked throughput, scoped resource safety, merge/parEvalMap/concurrently semantics, fs2-io and f…
Read article →Scala Futures and ExecutionContext
Deep-dive on scala.concurrent.Future: eager memoized async values, ExecutionContext thread pools, blocking isolation, map/flatMap composition and comb…
Read article →Scala Higher-Order Functions
How Scala treats functions as first-class values, the common HOFs (map/filter/fold), and how they enable functional-style data pipelines.
Read article →Scala http4s
How http4s provides purely functional HTTP client + server for Scala.
Read article →Scala implicit resolution architecture
Deep-dive on how Scala resolves implicits/givens: the type-directed search over local and implicit scope, type classes and context bounds, recursive i…
Read article →Scala Implicits
How Scala implicits enable type classes, extension methods, and DSL construction. Powerful but easily abused.
Read article →Scala Mill Build Tool
Modern faster alternative to sbt.
Read article →Scala Monads
How Option, Either, Try, and Future embody the monad pattern for context-aware computation.
Read article →Scala Overview
What Scala is, why it fused functional and object-oriented paradigms on the JVM, and where it fits versus Java, Kotlin, and pure functional languages.
Read article →Scala Play Framework
How Play provides async Scala web dev with Akka underneath.
Read article →Scala Promise
Write-once handle for Future.
Read article →Scala Reflection
Runtime + compile-time.
Read article →sbt
How sbt handles Scala builds: dependencies, compilation, testing, packaging.
Read article →Scala 3
The major changes in Scala 3: enums, given/using, extension methods, cleaner syntax.
Read article →Scala Shapeless
How Shapeless enables generic programming with HLists + case class magic.
Read article →Scala Streams
How Scala LazyList (Stream in Scala 2) provides lazy sequence processing.
Read article →Scala Tagless Final
Modern effect polymorphism.
Read article →Scala Tapir
How Tapir enables describing APIs as data + deriving server + client + docs.
Read article →Scala Type System
The Scala type system: generic types, variance annotations, higher-kinded types, and type classes. Why it enables libraries like Cats.
Read article →Scala ZIO Fibers
Lightweight concurrency. Cancelable.
Read article →ZIO Introduction
How ZIO provides functional effect system for Scala with excellent ergonomics.
Read article →ZIO ZLayer architecture
Deep-dive on ZIO's ZLayer: typed dependency injection where each layer declares its requirements and output in its type so th…
Read article →ZIO runtime architecture
Deep-dive on the ZIO runtime: effect values and the interpreter, fiber scheduling and work stealing, blocking pool isolation, typed error causes, inte…
Read article →ZIO STM architecture
Deep-dive on ZIO Software Transactional Memory: why locks do not compose, TRef and STM[E,A] as values, optimistic read/write logs and commit-time vali…
Read article →ZIO ZStream architecture
Deep-dive on ZIO ZStream: the ZChannel core behind streams, pipelines, and sinks; pull-based backpressure and chunking; scoped resource safety and int…
Read article →