When should you use a service bus vs. a web service call? When should you use REST vs. SOAP? Should you use CQRS? Should you build Microservices? Take a look under the hood of your network stack. What promises does it make? What promises can it actually keep? We have many architectural choices to make within a distributed system. Those decisions depend upon the nature of the messaging infrastructure upon which we build. Different options are good for different parts of the system. But some of the advice that you may have heard is wrong. Learn what’s really happening inside of the components you choose. And use that knowledge to build more reliable distributed systems.
Software is math. Every class is a theorem. The compiler is the proof. And unit tests check our work. Michael has recorded Pluralsight courses on CQRS, XAML Patterns, and Cryptography, in addition to Provable Code. He maintains the spoon-bending Assistant, Correspondence, and Jinaga open-source libraries. He podcasts about the intersection between software and mathematics at qedcode.com. And he helps his clients at Improving benefit from the power of software mathematics.