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.11com.typesafe.akka:akka-bom_2.13-v2.9.4tocom.typesafe.akka:akka-bom_3-v2.10.0akka-actor-typed_2.13toakka-actor-typed_3akka-actor-testkit-typed_2.13toakka-actor-testkit-typed_3
ch.qos.logback:logback-classicfrom1.2.11to1.5.18junitfrom4.13.2to4.13.2(not upgrade yet, and as Akka documentation doesn't mention of using JUnit Jupiter (JUnit 5))
org.apache.maven.plugins:maven-compiler-pluginfrom3.5.1to3.14.0org.codehaus.mojo:exec-maven-pluginfrom1.6.0to3.5.0org.apache.maven.plugins:maven-surefire-pluginfrom2.2.2to3.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
onMessageinBehavior
Using Functional-Style (with immutable state)