From 0a09ccc71e28efac5250d448d2e65698b83f508c Mon Sep 17 00:00:00 2001 From: Eric Loots Date: Wed, 11 Oct 2023 13:19:27 +0200 Subject: [PATCH] Add section on using scala3 union types (#695) * Add section on using scala3 union types * Code formatting * Integrate PR feedback - Point out that Union types are Scala 3 specific --- .../typed/InteractionPatterns3Spec.scala | 10 ++-- .../handling-actor-responses-with-scala3.md | 44 ++++++++++++++++++ .../typed/images/adapted-response-scala-3.png | Bin 0 -> 53066 bytes docs/src/main/paradox/typed/index.md | 1 + .../paradox/typed/interaction-patterns.md | 11 ++++- 5 files changed, 59 insertions(+), 7 deletions(-) create mode 100644 docs/src/main/paradox/typed/handling-actor-responses-with-scala3.md create mode 100644 docs/src/main/paradox/typed/images/adapted-response-scala-3.png diff --git a/actor-typed-tests/src/test/scala-3/docs/org/apache/pekko/typed/InteractionPatterns3Spec.scala b/actor-typed-tests/src/test/scala-3/docs/org/apache/pekko/typed/InteractionPatterns3Spec.scala index 26257fe287..404b955208 100644 --- a/actor-typed-tests/src/test/scala-3/docs/org/apache/pekko/typed/InteractionPatterns3Spec.scala +++ b/actor-typed-tests/src/test/scala-3/docs/org/apache/pekko/typed/InteractionPatterns3Spec.scala @@ -138,19 +138,19 @@ class InteractionPatterns3Spec extends ScalaTestWithActorTestKit with AnyWordSpe sealed trait Command final case class Translate(site: URI, replyTo: ActorRef[URI]) extends Command - private type CommandAndResponse = Command | Backend.Response + private type CommandAndResponse = Command | Backend.Response // (1) - def apply(backend: ActorRef[Backend.Request]): Behavior[Command] = + def apply(backend: ActorRef[Backend.Request]): Behavior[Command] = // (2) Behaviors.setup[CommandAndResponse] { context => def active(inProgress: Map[Int, ActorRef[URI]], count: Int): Behavior[CommandAndResponse] = { Behaviors.receiveMessage[CommandAndResponse] { case Translate(site, replyTo) => val taskId = count + 1 - backend ! Backend.StartTranslationJob(taskId, site, context.self) + backend ! Backend.StartTranslationJob(taskId, site, context.self) // (3) active(inProgress.updated(taskId, replyTo), taskId) - case Backend.JobStarted(taskId) => + case Backend.JobStarted(taskId) => // (4) context.log.info("Started {}", taskId) Behaviors.same case Backend.JobProgress(taskId, progress) => @@ -164,7 +164,7 @@ class InteractionPatterns3Spec extends ScalaTestWithActorTestKit with AnyWordSpe } active(inProgress = Map.empty, count = 0) - }.narrow + }.narrow // (5) } // #adapted-response diff --git a/docs/src/main/paradox/typed/handling-actor-responses-with-scala3.md b/docs/src/main/paradox/typed/handling-actor-responses-with-scala3.md new file mode 100644 index 0000000000..5f5cee9092 --- /dev/null +++ b/docs/src/main/paradox/typed/handling-actor-responses-with-scala3.md @@ -0,0 +1,44 @@ +# Handling responses in Scala 3 + +Handling responses from other actors in Scala 3 is straightforward and in contrast with +Scala 2, it doesn't require the utilisation of message adapters and response wrappers. + +A distinction exists between an actor's public protocol (`Command `) and its internal +protocol (`CommandAndResponse`). The latter is the union of the public protocol and all +the responses the actor should understand. This is union is implemented with Scala 3's +Union types. + +**Example:** + +![adapted-response.png](./images/adapted-response-scala-3.png) + +Scala +: @@snip [InteractionPatternsSpec.scala](/actor-typed-tests/src/test/scala-3/docs/org/apache/pekko/typed/InteractionPatterns3Spec.scala) { #adapted-response } + +Let's have a look at the key changes with respect to the Pekko typed implementation in +Scala 2 (see the corresponding numbering in the example code). + +* The type `CommandAndResponse` is the union of `Command` and `Backend.Response` (1) +* In the factory method (2) for the `Behavior` of the frontend actor, a + `Behavior[CommandAndResponse]` is narrowed (5) to a `Behavior[Command]`. This works as + the former is able to handle a superset of the messages that can be handled by the latter. +* The sending actor just sends its `self` @apidoc[actor.typed.ActorRef] in the `replyTo` + field of the message (3) +* Responses are handled in a straightforward manner (4) + +A more in-depth explanation of the concepts used in applying Scala 3's Union types can +be found in the following blog posts: + +* [Using Dotty Union types with Akka Typed](https://blog.lunatech.com/posts/2020-02-12-using-dotty-union-types-with-akka-typed) +* [Using Dotty Union types with Akka Typed - Part II](https://blog.lunatech.com/posts/2020-02-19-using-dotty-union-types-with-akka-typed-part-II) + +**Useful when:** + + * Subscribing to an actor that will send [many] response messages back + +**Problems:** + + * It is hard to detect that a message request was not delivered or processed + * Unless the protocol already includes a way to provide context, for example a request id + that is also sent in the response, it is not possible to tie an interaction to some + specific context without introducing a new, separate, actor \ No newline at end of file diff --git a/docs/src/main/paradox/typed/images/adapted-response-scala-3.png b/docs/src/main/paradox/typed/images/adapted-response-scala-3.png new file mode 100644 index 0000000000000000000000000000000000000000..1e9ec17684c5866f322b38c116ed1b2a869db1a6 GIT binary patch literal 53066 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 eVbJ_v{>-AF83Fo}7BVm}FnGH9xvX