How to persist FSM and how to shard them in a cluster