3 ms·
The middle ground that not enough teams are exploring is following the so-called Functional Architecture. If all side-effects are effectively segregated and rei
by vemv 5y ago
The middle ground that not enough teams are exploring is following the so-called Functional Architecture. If all side-effects are effectively segregated and reified, then one should be able to swap them out for determistic mocks that run instantly.
So you could E2E a distributed system realistically and instantly.
You can still simulate things services being slow, unavailable, etc if the code handling those is expressed as pure logic instead of coupling itself to IO.
Interestingly, in addition to fixed examples, you can perform generative testing over this setup e.g. what happens for various combinations of services being slow/down.
- alex-freire 5y agoexactly! well said. it's what we're trying to achieve with our acceptance testing strategy. you can see more here how we leveraged clojure to be able to simulate E2E in memory in the JVM by bypassing IO and just having one services logic+data layer talk to the other: https://www.youtube.com/playlist?list=PLfqo9_UMdHhah_gNPnawXYQF6coVrNga3 https://www.youtube.com/playlist?list=PLfqo9_UMdHhah_gNPnawX...
- vemv 5y agoNice! I missed that nuance in the article. Looking forward to eventually check out Sachem if there's a plan to share it?