Skip to main content
Warning This document has not been updated for a while now. It may be out of date.
Last updated: 9 Jun 2020

govuk-aws: 28. Combine api-mongo cluster into mongo cluster

Date: 2017-09-14

Status

Accepted

Context

Traditionally we had 4 mongo clusters:

  • api-mongo
  • mongo
  • performance-mongo
  • router-backend

Each cluster is a set of 3 instances, and the way we have built it in AWS is with one machine in one AZ, in an ASG with it's own ELB. This was due to the way that mongo relies on hostnames to create and join a cluster.

Performance Platform is officially out of scope as it is moving to the Government PaaS.

The only application that uses the api-mongo cluster is Content Store.

The router-backend cluster is used by Router. This should remain independent due to the critical nature of this application.

All other applications use the mongo cluster.

Decision

We are going to remove the api-mongo cluster, and update Content Store so it reads from the application mongo cluster.

Consequences

There is a chance that the main application mongo cluster becomes a point of failure across the entire stack when several applications depend on it. Content Store is critical for many frontend applications, and so there will be increased load on that cluster.

Removing the api-mongo cluster will simplify our architecture, and save money.