846 karma · joined May 15, 2010
URLs should be opaque, then we wouldn't have the mess of people trusting them. Also we would have HATEOAS instead of OpenAPI :D
I do think it does HTTP a disservice though - when you switch from HTTP to EDA you ditch the well known Uniform Interface and a lot of the benefits you get for free,(i.e. robust caching/proxying/routing, all the things a Service Mesh can do).
Instead of ditching HTTP, it would be nice to see people building async HTTP APIs, where the API responds with 201 Accepted (probably using a message queue behind the scenes) rather than the brittle systems you describe, where everything comes back under a 200.
"We used Azure Storage Queues to keep the whole flow asynchronous and more resilient to failures and load fluctuation."
That's not enough for me. I often encounter people building complex systems message queuing, despite failures being rare, retries being cheap and fast, and the hardware already being resilient to load.
In this article, a simple explanation of why each step actually _needs_ EDA/queues would be great - e.g. as the Product Matcher algorithm occasionally can't read a child's writing, an elf has to manually contact the child's parents to find out what they want so it can take a very long time.
If you are integrating using something like Sikuli, which works by actually looking at the screen pixels (rather than DOM elements, which are an implementation detail), you can use 'smart' techniques like OCR and synonym lists to make a change resistant client.
I post this all the time, it's like free upvotes :)
But then I would say that ;)
OData did exactly this years ago, and got heavily criticised for giving too much querying power to the client side, as (without expert usage on the server side to whitelist the query) a client could run queries that would overload the server.
You're damned if you do, and damned if you don't.
This leads to a test pack that prevents refactoring, and can't be trusted to catch regression errors.
This is partly down to the widely confused definition of a 'unit test' (which a lot of people interpret as 'one test per class').
If you haven't seen it, please watch Ian Cooper's "TDD, Where Did It All Go Wrong" https://www.youtube.com/watch?v=EZ05e7EMOLM
Also, I thought continuous testing was having your test pack run all the time while coding, but hey ho.
E.g. in https://www.gov.uk/30-hours-free-childcare?step-by-step-nav=... the eligibility section the first section of bullets is AND and the second is OR.
It's easy enough on this page, but when you are looking at tax rules it can be hard to tell.
This means I always win at "6 Degrees of Hitler".