Architecting an n-tier architecture where high availability is one of the prime non-functional requirements.