Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Do you have a preferred approach for versioning. #18

Closed
paulvanbladel opened this issue Dec 12, 2019 · 1 comment
Closed

Do you have a preferred approach for versioning. #18

paulvanbladel opened this issue Dec 12, 2019 · 1 comment

Comments

@paulvanbladel
Copy link

Software evolves, there is progressive insight and as a result commands, queries, domain events and integration events need updating which usually means versioning.
This is an often underestimated pain point.
(See e.g. https://leanpub.com/esversioning)

Ideas?
Btw, very interesting project !

@spetz
Copy link
Member

spetz commented Jan 6, 2020

Hey,
Versioning is quite often a tricky part. There are a few things that can be done:

  • Use some sort of contract testing e.g. pact.io (you can also use our port pactify) to ensure that data providers do not break the contracts.
  • Ensure that when other services still use the previous versions of the contracts, you only add new properties to the types without removing the old ones (and once all of the consumers switch to the newer versions - remove the old properties).
  • Run multiple versions of the same service in parallel e.g. API v1, API v2, etc. as long as the consumers still didn't upgrade themselves to the latest version (mostly useful when exposing the public APIs).

@GooRiOn GooRiOn closed this as completed Nov 8, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants