3 ms·
A few questions if its the same... - In case of errors, do we get a full backtrace of function calls across service boundaries? - Is the function call as chea
by spion 3y ago
A few questions if its the same...
- In case of errors, do we get a full backtrace of function calls across service boundaries?
- Is the function call as cheap as passing an argument? What if we're passing 1KB? 1MB? 1GB?
- Can we use a debugger to step in and out of those functions?
- Can we spin up a simple test runner to integration test a few levels of function calls together? Preferably something like Jest that has a watch mode so we can quickly run dozens of tests?
- Can all database modifications run in a single transaction so that we know that either all of them happened or none at all?
- YetAnotherNick 3y ago> - In case of errors, do we get a full backtrace of function calls across service boundaries? Unless you don't discard the error, then yes > - Is the function call as cheap as passing an argument? What if we're passing 1KB? 1MB? 1GB? No it is not. In general microservice costs are bit higher. > Can we use a debugger to step in and out of those functions? You could trace across services but passing the context. Also attaching debugger is possible afaik. > Can we spin up a simple test runner to integration test a few levels of function calls together? I use docker compose and it can be done > - Can all database modifications run in a single transaction so that we know that either all of them happened or none at all? Yes. I don't see how this is different than function call.
- jcparkyn 3y ago> Yes. I don't see how this is different than function call. If you need atomicity _across services_ it's very different, hence why everyone resorts to eventual consistency and all the associated extra complexity. If there's a decent way to have true transactions that span multiple services, I've certainly never seen it.
- another2another 3y agoYou can get Distributed Transaction Coordinators (e.g. MSDTC on Windows), but it will make everything much slower.