depends on your application... if it's traditional crud type of stuff then a database is best. individual actions on an object go through the actor (logic is all self contained) which then updates the database, and queries for multiple things hit the database/caching layer. for example, if you had an order system and wanted to find all outstanding orders for all customers where the customer is in California, the order has more than 3 widgets, and the payment method was by wire transfer... that's impractical to do via actors but trivial in SQL. on the other hand, if you need to retrieve the details of one specific customer then that's easily doable via a customer actor and you get the benefits of in-memory performance (after initial load). other may have different ideas but I've found that works fairly well.