Best simplistic architecture

I would like to get your comments about what is the best and minimalistic architecture for mission critical apps where HA, fault-tolerance, geo-redundancy, high performance is required:

  • One Cluster (serving 2 nodes initially and then scaled horizontally based on need)
  • Big RAM space for memcache. Is there any best practice size for memcache?
  • Replication is applied for fast performance where fault-tolerance is required. If one of the servers go-down, the second server which is active will hold all the data for the cluster.
  • XDCR replication can be applied for geo-redundancy.

In the above case, the disk capacity should be planned accordingly because one bucket of data will be stored 4 times: One in cluster replica, one for itself, and one for the synch-gateway (if synchronization required), one for the replica of synch-gateway.


In response to your question:

A minimum recommendation is to use 3 nodes in a cluster. Auto Failover requires a minimum of 3 nodes in order to utilize this feature.
Regarding Ram Sizing, it’s largely dependent on the use case and:
– What the desired working set is (% of documents to remain resident at all times)
– Whether full or value eviction is used (value eviction keeps all meta data in memory)
– Use case and writes/reads/deletes per second.

Further information on sizing is available here:

Regarding Durability and High Availability considerations, within your application it’s possible to implement failover logic for geo-redundancy.

Note: Sync Gateway is specific to mobile development and not required for XDCR operation.