Skip to content

Feature Request: Versioned Endpoints #22

@Danlobaton

Description

@Danlobaton

Is your feature request related to a problem? Please describe.

Yes, the current implementation of the Tango API using the same endpoint for both development and production environments creates significant challenges when MakeGov introduces breaking changes. If a breaking change is pushed to MakeGov's production endpoint, it immediately affects all environments, including our production environment, causing potential disruptions for customers. At the same time, we need a way to test these changes in a lower environment before promoting updates to production, but without versioned endpoints, we have no reliable way to control or stage these transitions effectively.

This is not a huge issue at the moment because we have not deployed some stuff to customers yet but as we scale this items will raise in priority.

Describe the solution you'd like

Introduce versioned endpoints for the Tango API. Versioned endpoints would allow us to specify the version of the MakeGov integration we want to use, ensuring we can continue using a stable version in production while testing and adapting client applications to a new version in a lower environment. Once we’re ready, we can bump the version in production, ensuring a smooth transition without impacting live customers.

Describe alternatives you've considered

  • Separate Staging and Production Endpoints from MakeGov: This is not ideal because staging endpoints often do not reflect production conditions or real data, making it less reliable for testing. Additionally, breaking changes in production would still affect all live environments.
  • Hotfix Reaction to Breaking Changes: Reacting to breaking changes as they happen introduces unnecessary operational strain and increases the risk of customer-facing issues.

Additional context

Versioned endpoints would give us control over when and how to adopt changes, reducing the risks of immediate disruptions while enabling thorough testing.

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions