Modules, Interfaces and Microservices

An airhacks.fm conversation with Mark Struberg (@struberg) about: Mark loves microservices, "if all you have is a hammer, everything looks like a nail", by Abraham Maslow, Hype Driven Development, the right size of a Microservice, splitting an application with Apache Maven, interfaces and DTOs, structuring a monolith, the killer argument against modules, interfaces with a single implementation, what if all the modules have the same version, testing against interfaces, pure unit tests are problematic in microservice world, avoid testing mocks, most problems and errors are in the database, System Tests in production-near environment over CDI Unit, Arquillian and Delta Spike, the overhead of Kubernetes, there are projects which require scaling others do not have such requirements, KVM over Kubernetes, testing locally vs. in production-like environment, Kubernetes is not only about load and scaling, Kubernetes is about management and sysadmins productivity, the main problem in business projects is overengineering, "Anything that can go wrong will go wrong": Murphy's Law, 200 errors per second, coursing about EJB and Java Enterprise, back to synchronous programming, transaction optimizations could be problematic, generating superfluous code with lombok, the "open session in view" pattern, transactions on JSF actions, in many use cases transactions are started on a too deep level, SOA and transaction boundaries, the fallacies of distributed computing, even larger projects have 10 microservices at most, there is no big company with a single, big monolith, staying local comes with the comfort of transactions, large amount of microservices is problematic, in 5 years we are going to reeingineer microservices into something different, everyone hates SOA now, everyone loved SOA back then, the saga pattern and compensating transactions, Jeff Bezos note on microservices from 2002, the benefits of microservices, the big bang Jakarta EE migration, the automatic package transformation with classloader, runnning old JARs on new namespaces, MicroProfile moves and iterates faster, Jakarta EE's release cadence is less frequent, the definition of "done" and micro frontends: Mark Struberg on twitter: @struberg and github: https://github.com/struberg. Mark's blog: https://struberg.wordpress.com/.

Om Podcasten

Java, Serverless, Clouds, Architecture and Web conversations with Adam Bien