API Release Management
Overview
API Release Management is the rollout & distribution of API products from Moveworks. It governs how APIs are made available to customers, how they are versioned, and how they are deprecated.
Why are APIs released differently from our core product?
With our UI-based products, we are designing interfaces for humans to interact with. As a result, we’re allowed to change the way that someone does something in the product, without breaking functionality.
For example, when we added the ability to send Employee Comms to distribution lists, we were able to change the “Select Audience” page to let the user choose between CSV mode and Audience Builder mode.
However, with API products, the interface is much more brittle. Since customers are writing code to integrate with our APIs, they can’t react to interface changes. Imagine we exposed Employee Comms over an API instead of a UI. We would need to introduce a breaking change (since the previous data model is now invalid).
During the early days of new APIs, there will likely be many breaking changes. That means that our early adopters developers at the ready to update their code and minimize any outages built with our new APIs.
How are our APIs released?
Overview
- There are 3 main stages:
- Alpha Versions (
/v1alpha1) - These are unstable releases for a new base version. Primarily designed for internal & non-production consumption only. - Beta Versions (
/v1beta1) - These are semi-stable releases for a new base version. They are meant for external & production usage, but can be used internally as well. Beta APIs are subject to short-term deprecation (example Message API Beta Endpoint). - Base Versions (
/v1) - These are stable releases.
- Alpha Versions (
- When can customers get access to the product?
- At the
betastage, inalphaMoveworks employees will only have access to it.
- At the
- Why did we use these words instead of employee rollout, limited preview, and preview?
- We decided to use a different naming convention for
API Releaselifecycle steps, to align with the industry standard
- We decided to use a different naming convention for
Example
Here is an example evolution of an API through the API release lifecycle.
How does the Beta stage work?
Beta API Behaviors
- What are the performance implications of
beta?- the last version of
betawill be thebaseversion, as we want to minimize migration overhead and have a tested version ofbase
- the last version of
- How long is
betastage?- Our goal is to migrate from
betatobaseversion as quickly as possible. This should generally happen within 6 months.
- Our goal is to migrate from
- What is the timeline for deprecation of
beta?- Once a stable
baseversion is released, we notify customers at least 6 months in advance to migrate OFF thebetaAPI before it is deprecated.
- Once a stable