Heartbeat

The underlying principle is: Period message issued by a component The message is being listened to by other components Absence of a heartbeat? - start the recovery Heartbeat is issued to everyone (who is listening) and they can make appropriate choices whether or not to go with recovery. Unlike ping/echo only one message is sent...

Design Tactics - Availability

The aim of the design tactic is to increase availability: the amount of time the system is operational. We could increase availability simply by increasing redundancy. The redundancy is costly. Ideally we would never have any replicas. There are two types of redundancy: data redundancy -multiple storage of the same data communication redundancy - multiple...

How do we come up with architectures?

In short, architecture comes from '"black magic" of people having 'architectural visions''. Indeed, there are 3 +1 main sources of architectures: Intuition - architectural vision. Method - methodologically work through and find the best approach. It is systematic and concuous and usually document. The final architecture is derived from requirements via transformations and heuristics (e.g....

Architecture Quality Attributes

Architecture Quality Attributes (a.k.a. QAs) are used to determine if our architecture is fit for a particular purpose. Qualities must be accommodated in a system's architecture over and above basic functionality. It is too often that functionality takes the front seat, indeed sometimes the only seat. The functionality however should be the primary concern of the...

Qualities of Architectures

In the last post, I described the business drivers that are used in software architectures. But what exactly makes the architecture good? There are 4 main things which need to be considered: Conceptual Integrity Low Coupling High Cohesion Feasibility / Buildability These make sense most of the time, but not always Conceptual Integrity This problem...

Business Drivers in Systems Architectures

Architectures are the building blocks of software. Good architecture would likely result in reasonably pain free development as well as . However, perfect architecture is almost never possible. In this series of articles, I will describe the basic process for designing software architectures. There is little difference between software and system architectures. In this first...