Documentation: https://izumi.7mind.io/latest/release/doc/distage/

Github: https://github.com/pshirshov/izumi-r2



Pavel Shirshov - DIStage: purely functional programming without sacrificing modularity with modern dependency injection for Scala



- Modularity and its importance

- DI-like mechanisms and their issues in Scala

- Why people think that "DI doesn't compose with functional programming", and why that's not true

- Designing a staged DI, for wiring at runtime, at compile-time, or mixed

- Staging programs for reliability, power and performance

- The pains of supporting rich Scala types (incl. How to emulate kind-polymorphism in Scala 2)

- Garbage collection in DI for better tests and deployments



Pavel's bio: Language-agnostic software engineer, coding for 18 years,

10 years of hands-on commercial engineering experience.

Led a cluster orchestration team at Yandex, "the Russian Google"; implemented an internal orchestration solution, "ISS" (Scala/Java/C++), managing 50K+ physical hosts across 6 datacenters.

Today, Pavel owns Irish R&D company Septimal Mind.