Diamond Architecture on Scala 3
summary
Diamond Architecture structures a Scala 3 codebase into ordered layers (domain → APIs → implementations → program), enforces six rules (layering, common identifiers, suffixes, vertical-only dependencies), and uses Scala tooling—ScalaFmt, ScalaFix, sbt plugins including sbt-explicit-dependencies and coverage—to keep dependencies explicit and checks in CI. A public Scala 3 case study repo proves the approach; Scala 3 syntax cuts verbosity (example: an intersection type from 11→2 tokens), compilation order becomes predictable, and modules can be deployed together or extracted to scale.
AI-written summary · about
chapters (14)
- 0:00Introduction
- 2:22Software architecture meaning
- 3:07Joining new project horror
- 8:31Why architecture matters
- 12:30Monolith vs microservices pitfalls
- 14:38Diamond Architecture concept
- 16:08Mechanical sympathy in architecture
- 20:01Diamond Architecture rules
- 26:04Case study demo
- 28:15Scala 3 syntax benefits
- 33:13Tooling for rules
- 35:39Diamond Architecture benefits
- 38:12Why engineers care about architecture
- 40:22Summary
related talks
45mEffective Scala
49mTen Cool Things You Can Do With Scala 3
01h 07mPanel On The Future Of Scala
35mFrom Zero to Three - Building a User Friendly DSL with Scala 3
01h 02mSimply Scala
51mOpening Keynote: New Functional Constructs in Scala 3
01h 04mOpening Keynote: Preparing for Scala 3
01h 05mScala: The Simple Parts
