So I finished reading the section on the Akka documentation about Persistence and I also played around with the "akka-sample-persistence" Typesafe Activator project and had several questions about it. Please bear with me if some of the questions seem dumb; I'm just trying to make sure I understood things correctly. Here we go:
1. Since a Processor actor persists Persistent messages that are sent to it, is there a limit to how many it can "save"? I'm guessing this is probably based on the disk size of the machine by default since it uses LevelDB (a.k.a. the local file-system). 2. This is probably a pointless question but I just want to double check. When a Processor deletes a message using the "deleteMessage" method, it's removed completely from its journal (and thus the system) right? Seems like something to consider if you start running out of disk space from journaling. 3. Transient channels are mainly used to avoid re-delivery of a Persistent message that has been sent to a destination from a Processor. Once the destination confirms that it received a ConfirmablePersistent message from a transient channel using the "confirm" method, the documentation says that this "...asynchronously writes a confirmation entry to the journal". Is this confirmation entry stored in the journal of the Processor actor that originally sent the message or do transient channels have journals of their own? 4. Say I have a scenario where a Processor actor pulls 10 elements from some 3rd party data store. After it has pulled these elements, can I wrap each one in a Persistent message and have the processor send them to itself in order to persist them? 5. On the Akka documentation for Persistence, it states that: If a processor emits more than one outbound message per inbound Persistent > message it must use a separate channel for each outbound message to ensure > that confirmations are uniquely identifiable, otherwise, at-least-once > message delivery semantics do not apply. a. Does this mean that a channel can only be used simultaneously for a single inbound message and a single outbound message (ie. it can have 2 messages at most at any given time; one outbound and one inbound)? b. Is this implying that the outbound messages that the Processor is sending is being done through the channel (I'm guessing doing a "tell(...)" to an actor, for example, doesn't factor into this)?. c. If there is a scenario where I have a master Processor actor that sends a message to each of its 5 children using channels and I expect a confirmation from each one of them, will I need to have 5 different channels (one for each child)? 6. Is it safe to say that having either a: (a) Processor actor (with Persistent messages being sent to it) that uses a normal/transient channel or a (b) regular UntypedActor that uses a persistent channel (ie. using persistent channels standalone) are the same in terms of providing persistence to the messages they are being sent by their respective actors? The way I see it, in case (a) a message is being persisted by the Processor actor itself inside its journal while in case (b) the message is being persisted by the persistent channel. The difference, it seems, would be that a persistent channel will delete a message once a destination confirms its delivery while in a Processor, you would have to manually tell it to delete a message with the "deleteMessage" method. 7. Does a persistent channel have its own journal that it uses to persist messages? If so, is this journal saved on disk or in-memory and is it configurable similar to how a Processor's journal? If not, then how do persistent channels persist messages? 8. Can persistent channels and Processors be used together? The reason I ask is because since they both do their own form of persistence, I don't know if this would be persistence overkill. -- >>>>>>>>>> Read the docs: http://akka.io/docs/ >>>>>>>>>> Check the FAQ: >>>>>>>>>> http://doc.akka.io/docs/akka/current/additional/faq.html >>>>>>>>>> Search the archives: https://groups.google.com/group/akka-user --- You received this message because you are subscribed to the Google Groups "Akka User List" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/akka-user. For more options, visit https://groups.google.com/d/optout.
