News for hackers. Stuff that matters.
Re:Goodbye Microservices: From 100s of problem children to 1... by ronjouch on Tuesday July 10, 2018 @09:20PM (#17503701)
> "should we implement ld.so for micro services? :-)"

Working exactly along those lines this week on multiple services exposed over REST APIs, I was wondering if tools exist to check compatibility between them. Said differently,

- I have a `swagger.yaml` for my service A managing chipmunks and it says endpoint `/chipmunks` supports an 'color' query parameter.

- In service B, I have a `handleToServiceA` that encapsulates calling A. Then say I write `const chipmunks = handleToServiceA.getChipmunks({'colour': 'blue'})`.

Are there (whatever the ecosystem) tools that would read serviceA's swagger.yaml, detect my error in serviceB (color -> colour) and report the issue at compile time rather than run time?

Re:Goodbye Microservices: From 100s of problem children to 1... by aeonsky on Tuesday July 10, 2018 @10:23PM (#17503973)
I think this is one of the standard options: https://docs.pact.io
Re:Goodbye Microservices: From 100s of problem children to 1... by noahsark769 on Wednesday July 11, 2018 @02:28AM (#17504847)
At work, to alleviate this issue, we use a client library for service A (i.e., one that provides service.getChipmunks(color='blue')). This gives you the compile time check, assuming the client library is a compiled language.

One step better is autogenerated client libraries where a new version is created every time a new version of swagger.yaml is deployed. However, I don't know an open source project that does this.