The application we r building requires that we separate the application from the database nodes. This i've found out by using an rpc mechanism (rpc:block_call/4,rpc:call/4,rpc:cast/4 etc).Now, We've used Our DNS Server to create some kind of load balancing by having the same name translating into 2 different IP Addresses on which our 2 separate App servers are running. Using Solaris Zones (Virtualisation), its been possible to have the DNS Server in a separate Zone and Each of the other App servers in separate Zones too. The DB Nodes are supposed to reside on a seprate Servers(separate Hardware). For effective redundancy, how many Mnesia Database Replicas may we need behind the Nitrogen/Yaws Servers?
Also, Our application has serious reliability requirements.Is the rpc mechanism better to use between Application and DB or is there any other erlang way we could access or update data across the two tiers?