Background
As we learn more about the needs and requirements for the T262315: <CORE TECHNOLOGY> API Migration & RESTBase Sunset, we need to think about the best architectural solutions to meet our short and long term needs for routing. This is a blocker for progress on implementation of a solution as outlined in this conversation thread. The goal is to have a routing solution in place for services migrated off RESTbase by end of March. This means the turnaround time for this diagram is 1-2 weeks (no later than Feb 22, 2023).
Problem statement
RESTbase deprecation requires that services are migrated to a new routing system while current internal and external clients that call RESTbase maintain unnoticed and uninterrupted usage of the services.
There are two related product goals:
Harden API Gateway
Currently the API Gateway is an alpha version. We are looking for use cases that will help us harden this critical piece of API infrastructure and prepare it for full production traffic across new and select pre-existing services.
Public launch of AQS 2.0
As part of RESTbase deprecation, AQS 2.0 will be the first set of services that the API Platform Value Stream will be releasing. The services should be easily accessible to all levels of technical ability. Currently AQS is under utilized by the community because there is a lack of awareness. This release should include a full go-to-community launch. For the clients currently using AQS, they must be rerouted to the new services without disruption.
Acceptance Criteria
- work is done collaboratively with key stakeholders from Product and Engineering
- long term maintenance is considered
- the work delivers incremental value
- this work leads to the confident completion of a decision brief by engineering
- external client request routing is diagrammed
- RESTbase's features: caching, storage, URL rewriting, rate limiting, and security headers, and anything else found in the process are accounted for in the decision
Key Tasks
- Review proposed solutions & open questions
- T322152: Route external requests to RESTbase via API gateway
- T310258: Route requests to RESTbase through Envoy
- T319365: PCS caching and pregeneration when restbase is decommissioned
- T324200: Handle edge cache invalidation for the api gateway
- T314771: Implement a compatibility layer between RESTBase and native PCS responses
- T314777: Investigate cache purging needs
- Gaps between current state and proposed future state is explored via diagramming
- Exploration of potential additional patterns are diagrammed
- An architectural decision record (or similar) is completed and includes:
- captures important architectural decision(s) made along with context and consequences
- organization's context and business priorities
- rationale
- options reviewed and decisions made including the team members who made the decision
- risk analysis with pros and cons
- maintenance plan
- include any software design choices that addresses a significant requirement.
- diagrams of the solution(s) (as needed)
- outline how incremental value can be delivered
- captures important architectural decision(s) made along with context and consequences
Artifacts & Resources
Current API Gateway with Needs and Questions Diagram
RESTbase Routing Diagramming
https://doc.wikimedia.org/Wikibase/REL1_35/php/md_docs_adr_index.html
https://docs.aws.amazon.com/prescriptive-guidance/latest/architectural-decision-records/adr-process.html