Skip to content

Software Engineering Concepts

Resource management

When there are finite resources in your system, manage them explicitly.

Be that memory, CPU, amount of connections to a database or incoming http connections.

Back Pressure

Back pressure

When one component is struggling to keep-up, the system as a whole needs to respond in a sensible way.

It is unacceptable for the component under stress to fail catastrophically or to drop messages in an uncontrolled fashion.

Since it can’t cope and it can’t fail it should communicate the fact that it is under stress to upstream components and so get them to reduce the load. This back-pressure is an important feedback mechanism that allows systems to gracefully respond to load rather than collapse under it. The back-pressure may cascade all the way up to the user, at which point responsiveness may degrade, but this mechanism will ensure that the system is resilient under load, and will provide information that may allow the system itself to apply other resources to help distribute the load, see Elasticity. 1

Further reading:

Memoization

Memoization

In computing, memoization or memoisation is an optimization technique used primarily to speed up computer programs by storing the results of expensive function calls and returning the cached result when the same inputs occur again.

Memoization has also been used in other contexts (and for purposes other than speed gains), such as in simple mutually recursive descent parsing.

Important Theories

Web Technologies

HTTP Caching


Last update: 2019-08-31 13:12:00