I am trying to design a system where an AKKA actor represents smth similar 
to simple banking account or counter
Each account has a list of transactions that are events generated by 
incoming commands change its state (basically add/remove funds).
One of my requirement is that system should track if incoming transaction 
was already processed by certain account.

It that case account actor 
1. should not change state again
2. should warn some external system about duplicated transaction.

We expect fairly large number of transactions per account. e.g 10000 per 
day.

My first intention was to use akka-persistence to implement event sourcing 
pattern

On incoming command 
 - check if command was already processed, (by querying journal or checking 
in memory list)
 - if command was not processed - creating transaction and store it to 
account journal
 - additional put transaction into in-memory list
 - if command with such ID was already processed, then do not generate new 
transaction, and notify someone

But after reading about journals and possible backends (kafka or cassandra, 
since we need it distributed) I consider that maybe akka-persistence is not 
applicable at all for my goals.
One of assumption is to use event-sourcing only for balance update and 
create snapshots from time to time and use direct DB access outside 
akka-persistence to check for duplicated transactions.

What do you suggest ?

-- 
>>>>>>>>>>      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 akka-user+unsubscr...@googlegroups.com.
To post to this group, send email to akka-user@googlegroups.com.
Visit this group at https://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/d/optout.

Reply via email to