Top 5 techniques for building the worst microservice system ever - William Brander - NDC London 2023

Learn how to intentionally build a poorly designed microservice system and avoid common pitfalls, including poor estimation, unnecessary complexity, and lack of communication, in this humorous and informative talk.

Key takeaways
  • Building bad systems is a common occurrence, even among skilled developers.
  • Estimating time and effort is difficult, and developers are often bad at it.
  • Microservices are not always the solution to problems, and can often make things worse.
  • Coupling between services can still exist even after decomposition.
  • Distributed systems can be difficult to manage and troubleshoot.
  • Replacing a monolithic system with a distributed one can be a bad idea if not done correctly.
  • Developers should be mindful of their own limitations and biases when designing systems.
  • Rewards and timetables can be a driving force behind bad system design.
  • More communication and collaboration between teams can help prevent bad system design.
  • Complexity can be a major factor in bad system design.
  • Developers should strive to create systems that are robust and fault-tolerant.
  • Bloat and lack of planning can lead to bad system design.
  • Developers should be aware of the limitations of their own skills and experience.
  • Perfection is not always achievable, but striving for it can lead to better system design.
  • Business demands can sometimes drive bad system design.
  • Collaboration and open communication can help prevent bad system design.
  • The importance of understanding the true needs of the business cannot be overstated.
  • Developers should be aware of the trade-offs involved in system design decisions.