Engineering/Engineering Principles/8 Performance And Scalability/Scalability/

Scalability Standards · PERF-02

Web applications must be stateless by design in order to be horizontally scalable · PERF-02.1 · MUST · DEV

Systems should utilise caching in order to provide more scalable data access · PERF-02.2 · SHOULD · DEV

Caching increases cost and complexity, therefore this must be a consideration rather than a mandate, and the costs and benefits should be communicated to the client where appropriate.

A distributed caching solution should generally be preferred in order to best enable horizontal scalability.

Asynchronous operations should be preferred where possible · PERF-02.3 · SHOULD · DEV

Where an operation does not need to be performed synchronously, technologies like message queues and events should be used in order to process actions asynchronously.

Common examples include:

  • Sending an email
  • Writing to an audit log
  • Notifying an external system of an event