Six principles for building fault tolerant microservices on the JVM by Christopher Batey
Are you developing applications that communicate over a network? Of course you are! This talk will take you through all the ways you can build fault-tolerant applications and how, once you get your team in the mindset that everything will eventually fail, dealing with the failures gracefully is no more work than building fragile applications. With supporting slides, I'll cover the theory and motivation behind moving to a more distributed architecture and then go through the pitfalls and the strategies for improving fault-tolerance, backed up with real examples from the system I built at Sky television. After an introduction the talk will be split into 6 sections/principles/lessons learned from the field: Implementing SLAs + timeouts in a networked environment Proactively avoiding work: bound your queues Failing gracefully + don’t cascade failures Circuit breaking unreliable dependencies Kill switching unreliable dependencies Know it is your fault: monitoring a micro service architecture