Why web services versioning is important

Freshness Warning
This article is over 12 years old. It's possible that the information you read below isn't current.

Two words: client synchronization.

Talking to Bill Lazar, he suggested that my web serrvices versioning problems are similar to his problems with Ruby on Rails. He’s got some code running on a pre-1.0 RoR installation. With 1.0, several important constructs changed in the framework, and upgrading to 1.0 would break his application. As we chatted through this, we hit upon the key difference. Although RoR released 1.0, there’s nothing forcing him to actually use it. He can keep using 0.9 (or whatever version he has) as long as he wants. He can try his code on a 1.0 system elsewhere, test it, adjust it, and prepare it for use. Then when he’s ready, he can upgrade his code and his RoR installation at the same time. The version negotiation between the client and server can be planned and synchronized.

For a data structure or service delivered over the public web to a disparate set of clients, this isn’t possible. I cannont time the upgrade of the server to co-incide with an upgrade of the client. In many cases, I don’t even know who the client is. I certainly don’t control them. And even if I knew them all, synchronizing an upgrade would require that I coordinate the upgrade schedules of multiple clients, maintained by multiple people, with varying degrees of interest and need.

The essential component in Bill’s Rails upgrade is a time shift. The RoR framework was released, but Bill can choose when it applies to him by shifting the upgrade to a time that suits him. People that need it now, or are just starting out with Rails can get the 1.0 version immedately. Everyone else can use whatever version they want. The Rails team doesn’t need to maintain old versions of the application. It’s acceptable to say that bugs in the app are fixed in the later versions only and if you have a problem that needs fixing, you should accelerate your upgrade schedule.

With a web service, I can time shift the upgrade path by continuing to supply older versions of the data format. There’s no maintenance involved. The format sits there, and anyone connecting to it can use it. If someone has a problem or needs some new data, they can get it by moving to the newest version. Any new uses of the service start out with the latest version.


Your comments:

Text only, no HTML. URLs will automatically be converted to links. Your email address is required, but it will not be displayed on the site.

Name:

Not your company or your SEO link. Comments without a real name will be deleted as spam.

Email: (not displayed)

If you don't feel comfortable giving me your real email address, don't expect me to feel comfortable publishing your comment.

Website (optional):

Follow me on Twitter

Best Of

  • The mouse and me Not only is the mouse very destructive, but it's evaded all attempts to capture or kill it so far.
  • Comment Spam Manifesto Spammers are hereby put on notice. Your comments are not welcome. If the purpose behind your comment is to advertise yourself, your Web site, or a product that you are affiliated with, that comment is spam and will not be tolerated. We will hit you where it hurts by attacking your source of income.
  • The importance of being good Starbucks is pulling CD burning stations from their stores. That says something interesting about their brand.
  • Rounded corners in CSS There lots of ways to create rounded corners with CSS, but they always require lots of complex HTML and CSS. This is simpler.
  • Where do the RSS ad startups fit in? Yahoo's RSS advertising service could spell trouble for pure-play RSS advertising services unless they adapt their business model.
  • More of the best »

Recently Read

Get More

Subscribe | Archives

12

Recently

Stretching your team (Jun 11)
Stretching your team is one of the best ways to improve your output, your team's happiness, and your velocity. But they'll need coaching.
Physical camera shutter for Cisco Spark Board (Jul 6)
A 3d printable design for a camera shutter for a Cisco Spark Board
My Travel Coffee Setup (Jan 20)
What my travel coffee brewing setup looks like, and how you can build your own for under $100.
Turkey Legs (May 30)
Product naming gone awry.
Speaking for Geeks: Your Slides (Dec 17)
Tips and tricks for creating great slides.
Speaking for Geeks: Writing Your Talk (Dec 14)
Don’t wait until the night before the talk to write it. Crazy, I know.
Speaking for Geeks: Tell a Story (Dec 13)
Telling a story keeps your presentation focused, keeps your audience interested, and makes it easier for you to remember your talk.
Speaking for Geeks: Where to speak (Dec 11)
You've got a great idea for a talk. How do you find conferences to submit it to?

Subscribe to this site's feed.

Elsewhere

Tropo
Voice and communications platforms, including Tropo and Phono. Work.
SacStarts
The Sacramento technology startup community.
Pinewood Freak
Pinewood Derby tips and tricks

Contact

Adam Kalsey

Mobile: 916.600.2497

Email: adam AT kalsey.com

AIM or Skype: akalsey

Resume

PGP Key

©1999-2018 Adam Kalsey.
Content management by Movable Type.