10000 should be ok to have as top level entries, if those are static (removing a top level entry leaves a small tombstone). If more would be needed or they are added/removed more dynamically you can use a few (e.g. 1000) ORMap as top level and each such map holds 10-100 factgroup (hashing to select map).
Creating a custom CRDT for the FactGroup sounds good. It can be a composite existing, such PNCounter or PNCounterMap. Be careful with serialization though (don’t use Java serialization). However, if it’s only a bunch of counters and a boolean it might be easier to model all that as a single PNCounterMap (the boolean can be a counter switching between 0 and 1).
Thank you Patrik , it was very helpful !
I have composed FactGroupCrdt from built in types.
Are there any abilities to subscribe to changes but if ORMap has changed i want to catch changed items not just ORMap full state , in my case when FactGroupCrdt has changed ?
As i said before i going to make 10к Actors for it , should i make more replicators for that , one replicator per 1000 actors as example ?