It of course “depends”, but I would advocate for “1 aggregate (as in DDD) == 1 
actor”.

Because it fits so nicely:
* An aggregate (an user for example) is a domain boundary
* An actor naturally enforces this even more so, because it is an asynchronous 
boundary

A lot of aggregates is *not* a problem in this thinking because:
* Let’s assume you have 999999999999 users in your system.
* Not all users are using the system all the time => you can kill actors that 
represent users that have not been active since an hour etc.
* Thus, the number of actually running actors will be lower. 
* If this user comes back, you simply start the actor, it does the replay (or 
from snapshot, that you did before killing it) and is ready to rock and roll.

That’s the general idea.
And I think the design becomes very clear if you keep the 1:1 mapping.

I hope this helps!

-- 
Konrad 'ktoso' Malawski
hAkker @ typesafe
http://akka.io

-- 
>>>>>>>>>>      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 http://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/d/optout.

Reply via email to