Ultra-Stable Software Design in C++?
I would suggest to create the software using a preferably a stateless domain and connect any relying system using a service/adapter. this way your application would still functoning even when loosing a certain service. You can loosely couple your dependencies... This is often called a Domain centered architecture or as Alistair Cockburn calls it: url:http://alistair.cockburn.us/crystal/articles/h paaa/hexagonalportsandadaptersarchitecture.htm We use it for almost all the software we create, instead of the more traditional tiered architecture.