Observations from the Field
In this section, our intention is to outline some of the recurring patterns/approaches, both good and bad, that we've come across. None of these are new, but we thought it useful to call them out here.
Patterns per Square Meter
The count of software patterns applied in a product is never a good quality metric. Software patterns are well-known, reusable templates for solving particular problems. Don't make the mistake of assuming that a system that includes a bunch of software patterns is superior to one with fewer of them.
Expect Failures and Deal with It
Catastrophic system failure is clearly undesirable. A system that never completely stops working in the face of subsystem failures is usually preferable. It can recover gracefully when subsystems fail and may support a subset of functions even if components are unavailable. We can apply architectural patterns wisely, for example, bulkheads to reduce the damage done by any individual...