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.

Reply via email to