Play Framework in Scala
Play Framework makes it easy to get started, but also easy to build applications that don’t age well. Controllers become god objects, database code leaks everywhere, and testing becomes an afterthought. This session shows how to fix that by structuring your application around Hexagonal Architecture, keeping your domain clean and your dependencies at the edges.
We’ll cover how to integrate Slick properly, design ports and adapters that reflect real business use cases, and implement testing strategies that actually prove your system works. The focus is Play Framework with the Scala programming language
Most Play Framework applications start simple and quickly become tightly coupled, hard to test, and difficult to change. In this training, we focus on building applications that remain maintainable as they grow by applying Hexagonal Architecture (Ports & Adapters) and Domain-Driven Design (DDD) to keep business logic independent from frameworks and infrastructure.
We’ll integrate Slick without leaking persistence concerns into the domain, introduce effect types to improve composability and testability, and establish a clear structure that scales with your application. On the web side, we’ll use Twirl for server-side rendering and WebJars for clean asset management—keeping the entire stack consistent, simple, and maintainable.
- The Agenda
-
-
Architecture & Design
-
Hexagonal Architecture (Ports & Adapters)
-
Domain-Driven Design Fundamentals
-
-
Application Structure
-
Layering: domain, application, infrastructure
-
Designing ports around use cases
-
-
Persistence with Slick
-
Repository adapters
-
Keeping persistence out of the domain
-
-
Effects & Maintainability
-
Modeling behavior with effect types
-
Improving composability and testability
-
Lean Services
-
-
Web Layer
-
Thin controllers as adapters
-
Twirl for views, WebJars for assets
-
-
Testing
-
Testcontainers for real integration tests
-
Property-based testing for stronger guarantees
-
-
- By the end of this training, you will be able to
-
-
Design Play Framework applications using Hexagonal Architecture and DDD
-
Structure projects for clarity, scalability, and long-term maintainability
-
Integrate Slick without coupling it to your domain model
-
Use effect types to improve composability and testability
-
Build clean web layers using Twirl and WebJars
-
Implement testing strategies that validate real system behavior—not just units
-
Go to https://evolutionnext.com/contact to discuss or schedule training