For a general comparison of composing routes with Camel, akka-camel and scalaz-camel see this presentation slides 47-55.
With akka-camel, you are using actors to
- consume messages from Camel endpoints
- produce messages to Camel endpoints
- and route/process messages in between (i.e. you build actor-based message processing routes)
The main purpose of akka-camel is to provide connectivity between Camel endpoints and actors, for exchanging messages asynchronously (and non-blocking, if supported by the endpoint). For processing messages between endpoints, you're wiring actors manually instead of composing message processors with the Camel DSL.
The scalaz-camel-akka module (of scalaz-camel) is used to exchange messages with Akka actors from within scalaz-camel routes. It allows you to integrate Akka actors into scalaz-camel routes using a functional DSL. You can even use akka-camel and scalaz-camel-akka together, for example:
- start message processing with a scalaz-camel route
- send the message to an actor using the (functional) DSL of scalaz-camel-akka
- further process the message with actors and finally
- send the message to an endpoint using akka-camel
Should you have special requirements for stateful message processing or want to scale out your integration solution take a closer look at akka-camel.