A persistency can be configured either
- Write through
- Write behind.
In case of write through, if MapStore fails for some reason, you'll get exception on map.put.
In case of write behind, Every 10(default) seconds Hazelcast will persist all dirty entries as a bulk. If MapStore throws an Exception, those entries are marked as dirty and in the next run, they are passed to the MapStore again. Basically Hazelcast will continue to store them until the MapStore.storeAll() succeeds. From what I understand, your case fals into this category and Hazelcast does provide a failover.