storages

Collection of key-value storages adapters for Golang

This project is maintained by reddec

Redundancy

Redundancy is a process to copy data through multiple storages.

              storage1 (data from 0..N)
            🡕
data(0...N) 🡒 storage2 (data from 0..N)
            🡖 
              storageM (data from 0..N)

In contrast of sharding where data scattered over multiple storages without duplicates, the redundancy oppositely coping data to all underlying storages (depends of writer strategy).

Briefly, sharding is for horizontal scaling, redundancy is for reliability.

Redundant storage mimics to usual Storage interface so target consumers should work with it as usual.

General constructor for redundant storage is Redundant(writerStrategy, readerStrategy, deduplication, …storages).

Shorthand constructor RedundantAll(deduplication, …storages) offers those default strategy: