diff --git a/docs/ADR/001-porting-to-postgresql.md b/docs/ADR/001-porting-to-postgresql.md new file mode 100644 index 00000000..8ec720ba --- /dev/null +++ b/docs/ADR/001-porting-to-postgresql.md @@ -0,0 +1,31 @@ +# ADR 001 - How we migrate Router/Router-API from Mongo to Postgres + +## Context + +We need to migrate router (and [router-api](https://github.com/alphagov/router-api)) off of MongoDB as its datastore. The majority of GOV.UK platform is on PosgreSQL and there is no longer a strong enough case for being on MongoDB for router data. + +Even the [content-store is migrating from MongoDB to PostgreSQL](https://github.com/alphagov/govuk-rfcs/pull/158). + +This ADR is to outline our decisions and rationale on the steps we take for that migration: + +### The outline +* Spin up a completely separate stack of router and router-api (govuk-docker first) that will talk to a PostgreSQL db only (as forks) +* Provision in EKS a new PostgreSQL db +* Provision the new p-router/p-router-api apps +* Amend messages to router-api to be duplicated to p-router-api within content-store + +### Benefits of doing it this way +* As updates are being made to the two databases, we can backfill data previous to that point in time without loss of service or downtime to the live (old) service +* We can test traffic going to the new p-router stack insolation +* Switchover would mean a change in DNS +* We can rename p-router once we decommission old router + +## Decision + +* https://trello.com/c/nQcpWnD5/1788-provision-new-apps-in-govuk-docker-for-prouter-and-prouter-api +* https://trello.com/c/dOXADTQP/1802-spin-up-a-separate-stack-of-router-api-l +* https://trello.com/c/YJro3BGj/1790-spin-up-a-separate-stack-of-router-l + +## Status + +Accepted \ No newline at end of file