Scala 3.4+ Development Specialist
Functional programming, effect systems, and big data processing for JVM applications.
Quick Reference
Auto-Triggers: Scala files (.scala, .sc), build files (build.sbt, project/build.properties)
Core Capabilities:
- Scala 3.4: Given/using, extension methods, enums, opaque types, match types
- Akka 2.9: Typed actors, streams, clustering, persistence
- Cats Effect 3.5: Pure FP runtime, fibers, concurrent structures
- ZIO 2.1: Effect system, layers, streaming, error handling
- Apache Spark 3.5: DataFrame API, SQL, structured streaming
Key Ecosystem Libraries:
- HTTP: Http4s 0.24, Tapir 1.10
- JSON: Circe 0.15, ZIO JSON 0.6
- Database: Doobie 1.0, Slick 3.5, Quill 4.8
- Streaming: FS2 3.10, ZIO Streams 2.1
- Testing: ScalaTest, Specs2, MUnit, Weaver
Module Index
This skill uses progressive disclosure with specialized modules:
Core Language
- functional-programming.md - Scala 3.4 features: Given/Using, Type Classes, Enums, Opaque Types, Extension Methods
Effect Systems
- cats-effect.md - Cats Effect 3.5: IO monad, Resources, Fibers, FS2 Streaming
- zio-patterns.md - ZIO 2.1: Effects, Layers, ZIO Streams, Error handling
Frameworks
- akka-actors.md - Akka Typed Actors 2.9: Actors, Streams, Clustering patterns
- spark-data.md - Apache Spark 3.5: DataFrame API, SQL, Structured Streaming
Implementation Guide
Project Setup (SBT 1.10)
In build.sbt, set ThisBuild / scalaVersion to "3.4.2" and organization. Define lazy val root project with settings including name and libraryDependencies. Add dependencies for cats-effect, zio, akka-actor-typed, http4s-ember-server, circe-generic, and scalatest for test scope. Include scalacOptions for deprecation, feature warnings, and Xfatal-warnings.
Quick Examples
Extension Methods: Use extension keyword with parameter in parentheses. Define methods like words splitting on whitespace and truncate checking length before taking characters and appending ellipsis.
Given and Using: Define trait with abstract method signature. Create given instance with with keyword and implement the method. Create functions with using parameter clause for implicit resolution.
Enum Types: Define enum with generic type parameters and plus variance annotations. Create case entries with parameters. Define methods on enum using match expression to handle each case, returning appropriate results.
Context7 Integration
Library mappings for latest documentation:
Core Scala:
- /scala/scala3 - Scala 3.4 language reference
- /scala/scala-library - Standard library
Effect Systems:
- /typelevel/cats-effect - Cats Effect 3.5 documentation
- /typelevel/cats - Cats 2.10 functional abstractions
- /zio/zio - ZIO 2.1 documentation
- /zio/zio-streams - ZIO Streams 2.1
Akka Ecosystem:
- /akka/akka - Akka 2.9 typed actors and streams
- /akka/akka-http - Akka HTTP REST APIs
- /akka/alpakka - Akka connectors
HTTP and Web:
- /http4s/http4s - Functional HTTP server/client
- /softwaremill/tapir - API-first design
Big Data:
- /apache/spark - Spark 3.5 DataFrame and SQL
- /apache/flink - Flink 1.19 streaming
- /apache/kafka - Kafka clients 3.7
Testing Quick Reference
ScalaTest: Extend AnyFlatSpec with Matchers. Use string description with should in for behavior. Make assertions with shouldBe for equality checks.
MUnit with Cats Effect: Extend CatsEffectSuite. Define test with string name. Return IO containing assertEquals assertions.
ZIO Test: Extend ZIOSpecDefault. Define spec as suite with test entries. Use for-comprehension to run effects and yield assertTrue assertions.
Troubleshooting
Common Issues:
- Implicit resolution: Use scalac -explain for detailed error messages
- Type inference: Add explicit type annotations when inference fails
- SBT slow compilation: Enable Global / concurrentRestrictions in build.sbt
Effect System Issues:
- Cats Effect: Check for missing import cats.effect._ or import cats.syntax.all._
- ZIO: Verify layer composition with ZIO.serviceWith and ZIO.serviceWithZIO
- Akka: Review actor hierarchy and supervision strategies
Works Well With
- moai-lang-java - JVM interoperability, Spring Boot integration
- moai-domain-backend - REST API, GraphQL, microservices patterns
- moai-domain-database - Doobie, Slick, database patterns
- moai-workflow-testing - ScalaTest, MUnit, property-based testing
Additional Resources
For comprehensive reference materials:
- reference.md - Complete Scala 3.4 coverage, Context7 mappings, performance
- examples.md - Production-ready code: Http4s, Akka, Spark patterns
Last Updated: 2026-01-11
Status: Production Ready (v2.1.0)
1---2name: moai-lang-scala-23description: Scala 3.4+ development specialist covering Akka, Cats Effect, ZIO, and Spark patterns. Use when building distributed systems, big data pipelines, or functional programming applications.4license: Apache-2.05---6
7# Scala 3.4+ Development Specialist
8
9Functional programming, effect systems, and big data processing for JVM applications.
10
11## Quick Reference
12
13Auto-Triggers: Scala files (.scala, .sc), build files (build.sbt, project/build.properties)
14
15Core Capabilities:
16
17- Scala 3.4: Given/using, extension methods, enums, opaque types, match types
18- Akka 2.9: Typed actors, streams, clustering, persistence
19- Cats Effect 3.5: Pure FP runtime, fibers, concurrent structures
20- ZIO 2.1: Effect system, layers, streaming, error handling
21- Apache Spark 3.5: DataFrame API, SQL, structured streaming
22
23Key Ecosystem Libraries:
24
25- HTTP: Http4s 0.24, Tapir 1.10
26- JSON: Circe 0.15, ZIO JSON 0.6
27- Database: Doobie 1.0, Slick 3.5, Quill 4.8
28- Streaming: FS2 3.10, ZIO Streams 2.1
29- Testing: ScalaTest, Specs2, MUnit, Weaver
30
31---
32
33## Module Index
34
35This skill uses progressive disclosure with specialized modules:
36
37### Core Language
38
39- [functional-programming.md](modules/functional-programming.md) - Scala 3.4 features: Given/Using, Type Classes, Enums, Opaque Types, Extension Methods
40
41### Effect Systems
42
43- [cats-effect.md](modules/cats-effect.md) - Cats Effect 3.5: IO monad, Resources, Fibers, FS2 Streaming
44- [zio-patterns.md](modules/zio-patterns.md) - ZIO 2.1: Effects, Layers, ZIO Streams, Error handling
45
46### Frameworks
47
48- [akka-actors.md](modules/akka-actors.md) - Akka Typed Actors 2.9: Actors, Streams, Clustering patterns
49- [spark-data.md](modules/spark-data.md) - Apache Spark 3.5: DataFrame API, SQL, Structured Streaming
50
51---
52
53## Implementation Guide
54
55### Project Setup (SBT 1.10)
56
57In build.sbt, set ThisBuild / scalaVersion to "3.4.2" and organization. Define lazy val root project with settings including name and libraryDependencies. Add dependencies for cats-effect, zio, akka-actor-typed, http4s-ember-server, circe-generic, and scalatest for test scope. Include scalacOptions for deprecation, feature warnings, and Xfatal-warnings.
58
59### Quick Examples
60
61Extension Methods: Use extension keyword with parameter in parentheses. Define methods like words splitting on whitespace and truncate checking length before taking characters and appending ellipsis.
62
63Given and Using: Define trait with abstract method signature. Create given instance with with keyword and implement the method. Create functions with using parameter clause for implicit resolution.
64
65Enum Types: Define enum with generic type parameters and plus variance annotations. Create case entries with parameters. Define methods on enum using match expression to handle each case, returning appropriate results.
66
67---
68
69## Context7 Integration
70
71Library mappings for latest documentation:
72
73Core Scala:
74
75- /scala/scala3 - Scala 3.4 language reference
76- /scala/scala-library - Standard library
77
78Effect Systems:
79
80- /typelevel/cats-effect - Cats Effect 3.5 documentation
81- /typelevel/cats - Cats 2.10 functional abstractions
82- /zio/zio - ZIO 2.1 documentation
83- /zio/zio-streams - ZIO Streams 2.1
84
85Akka Ecosystem:
86
87- /akka/akka - Akka 2.9 typed actors and streams
88- /akka/akka-http - Akka HTTP REST APIs
89- /akka/alpakka - Akka connectors
90
91HTTP and Web:
92
93- /http4s/http4s - Functional HTTP server/client
94- /softwaremill/tapir - API-first design
95
96Big Data:
97
98- /apache/spark - Spark 3.5 DataFrame and SQL
99- /apache/flink - Flink 1.19 streaming
100- /apache/kafka - Kafka clients 3.7
101
102---
103
104## Testing Quick Reference
105
106ScalaTest: Extend AnyFlatSpec with Matchers. Use string description with should in for behavior. Make assertions with shouldBe for equality checks.
107
108MUnit with Cats Effect: Extend CatsEffectSuite. Define test with string name. Return IO containing assertEquals assertions.
109
110ZIO Test: Extend ZIOSpecDefault. Define spec as suite with test entries. Use for-comprehension to run effects and yield assertTrue assertions.
111
112---
113
114## Troubleshooting
115
116Common Issues:
117
118- Implicit resolution: Use scalac -explain for detailed error messages
119- Type inference: Add explicit type annotations when inference fails
120- SBT slow compilation: Enable Global / concurrentRestrictions in build.sbt
121
122Effect System Issues:
123
124- Cats Effect: Check for missing import cats.effect._ or import cats.syntax.all._
125- ZIO: Verify layer composition with ZIO.serviceWith and ZIO.serviceWithZIO
126- Akka: Review actor hierarchy and supervision strategies
127
128---
129
130## Works Well With
131
132- moai-lang-java - JVM interoperability, Spring Boot integration
133- moai-domain-backend - REST API, GraphQL, microservices patterns
134- moai-domain-database - Doobie, Slick, database patterns
135- moai-workflow-testing - ScalaTest, MUnit, property-based testing
136
137---
138
139## Additional Resources
140
141For comprehensive reference materials:
142
143- [reference.md](reference.md) - Complete Scala 3.4 coverage, Context7 mappings, performance
144- [examples.md](examples.md) - Production-ready code: Http4s, Akka, Spark patterns
145
146---
147
148Last Updated: 2026-01-11
149Status: Production Ready (v2.1.0)