How to Build the Worst Microservices System Ever

TLDRLearn the top techniques to build a terrible microservices system that will cause permanent brain damage, featuring the Strangler fig pattern and increased complexity.

Key insights

⚡️Microservices are often implemented to decrease coupling and increase deployability, but let's be honest, we do it for the complexity and decreased performance.

🔥Applying the Strangler fig pattern can help in transitioning from a monolith to microservices, but if applied everywhere, it can result in decreased throughput and increased latency.

💀.NET's garbage collection process can have a significant impact on system performance, especially in a microservices architecture with multiple network hops.

🌐Network operations introduce latency and can impact the scalability of a microservices system, leading to diminished throughput as the load increases.

👹Building a terrible microservices system requires embracing complexity, convoluted implementations, and avoiding monoliths just for the sake of it.

Q&A

Why do we implement microservices?

While the official answer is to decrease coupling and increase deployability, let's be honest, we do it for the complexity and decreased performance.

What is the Strangler fig pattern?

The Strangler fig pattern is a technique used to transition from a monolith to microservices. It involves isolating a piece of functionality and moving it to a separate service while the monolith still calls the new service.

How does garbage collection affect microservices?

.NET's garbage collection process can lead to increased latency in a microservices system, especially with multiple network hops, as garbage collection events can pause all user threads.

How do network operations impact microservices?

Network operations introduce additional latency and can impact the scalability of a microservices system, leading to decreased throughput and increased response times as the load increases.

Should we avoid monolithic architectures?

Monoliths aren't inherently bad. It's important to evaluate the specific requirements of a project and choose the appropriate architecture, rather than blindly following the microservices trend.

Timestamped Summary

00:00Introduction: The speaker introduces the topic of building the worst microservices system ever, highlighting the humor and sarcasm throughout the talk.

06:26Explaining the Strangler fig pattern: The speaker discusses the Strangler fig pattern and how it can be used to transition from a monolith to microservices, but warns about applying it everywhere for the sake of it.

09:39Impact of garbage collection: The speaker explains how the.NET garbage collection process can pause all user threads during a garbage collection event, impacting the performance of a microservices system.

10:33Network operations and scalability: The speaker highlights the impact of network operations on latency and scalability of a microservices system, leading to decreased throughput and increased response times.

10:38Embracing complexity and avoiding monoliths: The speaker emphasizes the importance of embracing complexity and avoiding blindly following the microservices trend without considering the specific project requirements.