SAFR is VM clustering friendly but also has its own application-level clustering capability which supports redundancy, failover and horizontal scalability even without VM clustering.
SAFR Server itself supports notion of nodes which can be configured into an application-level cluster to be either simple joins or redundantly joined (storing data) nodes. Redundant nodes leverage MongoDB clusters which sync data to other redundant nodes while heavy objects (i.e. images) are written to local storage which can be made redundant through networked storage solutions. Each of SAFR nodes can be placed into a VM and clustered via a VM clustering software providing desired flexibly and ease of management over SAFR nodes.
SAFR application-level clustering offers the following advantages:
- No extra cost (standard feature with SAFR server)
- No risk of data loss because data is replicated in real time (within milliseconds)
- Protection against both hardware and software failures
- Zero downtime (dependent only upon response time of load balancer health check)
SAFR clustering works by leveraging the clustering support in Mongo database which is the database used internally by SAFR. SAFR can operate in a cluster of 3 or more instances and the number of instances must be odd (3, 5, etc). You can operate a SAFR cluster with just two instances but write failover is not supported in that case. Without write failover, if the primary server fails, creating or updating person or events will not work until primary is restored.
Here is a link to our high availability whitepaper: