Whether you've hit a road block in your understanding of distributed technologies, or you've just realized there is a lot more to know than what's on the surface; this meetup is the place to bring your skills to the next level.
This is not a beginner's level meetup, we'll be getting into the source code of popular technologies to explain the particulars of their functionality for a better practical understanding of how to optimize for those 90th percentile edge cases.
Join us as we go down the rabbit hole, and come out with a deeper understanding of the ecosystems powering so much of the digital age.
Bottlenecks are common. SO common! What is a bottleneck, though? You can define a bottleneck in a lot of ways. A common understanding is "what component has the lowest throughput of any component in the system?". This is a very loose definition.
Different system components commonly map incoming requests to different volumes of outgoing requests. That's a pretty big confounder. Resource requirements also vary given a query pattern, or type of request.
Clearly defining a "bottleneck" requires a value with respect to optimize.
In this meetup we'll discuss bottlenecks in terms of total resource consumption per request of interest. We'll touch on basic queueing theory, and move right into definitions of headroom. Looking at the rate of headroom erosion with respect to request volume we'll identify bottlenecks BEFORE they become bottlenecks by measuring the slope of that line.
This allows you to observe real production metrics, without worrying about pairty between that and your staging or load testing environment.
Join us as we go down the rabbit hole once again!
Pizza and drinks will be served.
Our speaker for this meetup is Jakub Kubryński.
For over 15 years of his professional career, he worked as a software developer, architect, team leader, and manager. He gained experience working on both sides of the delivery process: as a vendor and as a client. Jakub is an active contributor to many open-source projects and co-author of the Spring Cloud Contract. He is also the co-founder of the online technical assessment platform, Devskiller and a consultant helping many Fortune500 companies to streamline their software.
For this meetup:
Distributed systems are all about communication. Unfortunately, integration tests are difficult especially in distributed environments, where many applications communicate with each other. When we add continuous deployment it becomes impossible to ensure two independently deployed services will integrate properly on production.
Historically, as a community, we tackled similar issues with monolithic software. We realized Test Driven Development allows us to improve the design by looking at the function signatures from the client perspective.
Why not bring similar approach from the client to the API and architecture layer?
During the talk, I'll explain why but also show how to use contract testing and "consumer-driven contracts" techniques to improve the reliability of synchronous as well as the asynchronous communication in distributed environments.
We'll have pizza and drinks as usual. See you then!