I am new to Akka and am trying to figure out whether it has built-in support for Enterprise Integration Patterns (EIP) or whether I need to delegate this type of routing/integration out to a framework like Camel.
In my use case, I have an actor that reads binary samples from a source (file); this actor is called the Sampler
. The Sampler
than passes Sample
instances (messages) out to a field of actors called SampleProcessors
. Each sample processor does something different to a given Sample
. Depending on the outcome of a processor processing a Sample
, it may need to be routed to 1+ other SampleProcessor
, or perhaps all processing has concluded. Depending on the exact SampleProcessor
, and the exact nature of the given Sample
, the Sample
may need to be multi-casted to a list of other recipient SampleProcessors
.
This all feels like Camel to me.
So I ask:
- Does Akka have built-in support for routing, broadcasting, multi-casting and other EIPs (if so, what are they and where are they documented)?
- Or, should I try to integrate the actor system with Camel, in which case, what would that look like? I know there is a Camel-Akka component but I believe this is just for integrating a Camel bus with an actor system (whereas, I want a service bus inside my actor system)
- Or, should I just do my own homegrown EIP/actor wiring here?