Closed Bug 803657 Opened 7 years ago Closed 7 years ago

Add version component to Bagheera URIs

Categories

(Mozilla Metrics :: Metrics Data Ping, defect)

defect
Not set

Tracking

(Not tracked)

RESOLVED FIXED
Moved to JIRA

People

(Reporter: gps, Assigned: xstevens)

References

Details

(Whiteboard: [JIRA METRICS-1182])

I am proposing the addition of a version component to the URIs used when communicating to a Bagheera server instance. This will likely take the form of a URI prefix.

Instead of:

  https://data.metrics.mozilla.com/submit/foo/bar

We would have:

  https://data.metrics.mozilla.com/1.0/submit/foo/bar

Versioning URIs provides a convenient upgrade path (and escape hatch) for managing services. From an operational perspective it makes a lot of sense because you can stand up different versions of your service on different physical hosts and have a load balancer route to the appropriate one depending on the URI. This makes application development easier because your HTTP handlers only need to support 1 version at a time. This typically results in cleaner code. Versioning also gives you an escape hatch. If you decide to radically change how the service works, you are free to experiment in your own URI space without potentially conflicting with an older version.

The only complaint against versioning URIs I have heard comes from REST purists. And, I think the operational benefits and flexibility afforded by versioned URIs trumps their argument.

I propose that Bagheera prefix all HTTP endpoints with "/1.0/". Existing URIs will still work, but will be deprecated and should be moved to the "/1.0/" URIs ASAP. When clients stops hitting the deprecated URIs, those endpoints can be removed from the Bagheera server.
Whiteboard: [JIRA METRICS-1182]
Target Milestone: Unreviewed → Moved to JIRA
Depends on: 804266
This has been implemented and deployed a while back.
Assignee: nobody → xstevens
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.