Thanks for your interest and comment, and good to know that you are successful with CDRTs! Have you described your approach somewhere? I would be interested in finding out more about it.
We use sharding together with event-sourcing to scale our stateful services and model the entities in our system in domain-driven style. Actor sharding is convenient because it allows for a very high number of entities. Representing a shopping basket (or in our case, a ride) by an actor is intuitive and totally fine even if it leads to millions of them. After a configurable period of inactivity, entities are automatically flushed out of memory thanks to passivation. Every action in the system is tracked in the event journal, so we are able to produce reports and other derived information down the road thanks to event projections.