This repository is to do assigned exercises from the Akka Interaction Pattern for Java course OFFERED BY AKKADEMY
- Java (JDK) 23 or newer
- Apache Maven 3.9.9 (to be safe, the version should be
3.9.0 <= version < 4.0.0
) - IntelliJ IDEA or your preferred IDE
- Scala 3.6.x or newer [for Scala exercise]
- SBT 1.10.x or newer [for Scala exercise] (to be safe, the version should be
1.10.11 <= version < 2.0.0
)
[Optional] You can use SDKMAN! to install JDK23, Maven, Scala, and SBT:
Installation Example:
sdk install java 23.0.2-librca # or your preferred version
sdk install maven 3.9.9
sdk install scala 3.6.4
sdk install sbt 1.10.11
com.typesafe.akka:akka-bom_2.13
-v2.9.4
tocom.typesafe.akka:akka-bom_3
-v2.10.0
akka-actor-typed_2.13
toakka-actor-typed_3
akka-actor-testkit-typed_2.13
toakka-actor-testkit-typed_3
ch.qos.logback:logback-classic
from1.2.11
to1.5.18
junit
from4.13.2
to4.13.2
(not upgrade yet, and as Akka documentation doesn't mention of using JUnit Jupiter (JUnit 5))
org.apache.maven.plugins:maven-compiler-plugin
from3.5.1
to3.14.0
org.codehaus.mojo:exec-maven-plugin
from1.6.0
to3.5.0
org.apache.maven.plugins:maven-surefire-plugin
from2.2.2
to3.5.3
Using OO-Style
- Request Response Pattern - Java
- Adapted Response Pattern - Java
- Use record classes with sealed interfaces instead of final classes
- Timers - Java
- Use record classes with sealed interfaces instead of final classes
- Use pattern matching instead of
onMessage
inBehavior
Using Functional-Style (with immutable state)