Session
What Flow Metrics Teaches Us About Designing Resilient Systems
Flow metrics, often used in agile methodology, can teach us how to differentiate "goodput" (work valuable to the customer) from "throughput" (total work done by the system). In this talk I will go over what flow metrics are and what we can learn from it while designing resilient scalable systems.
In a fast paced development team, it is often difficult to identify blockers in real time. This impacts the ability of the team to deliver value to its customers. A system of consistent and meaningful monitoring of key metrics, such as flow metrics, can help address such blind spots ultimately delivering value to customers in a sustainable manner.
Flow metrics comprises the following
1. Velocity: How much work is done by a team per unit time?
2. Time: How much time something takes to get completed?
3. Efficiency: How much time did the team have to wait for something else to be done?
4. Load: How many items remain open in the task list at the same time?
In essence, flow metrics offer a holistic measure of the performance of software development life-cycle. Specifically, it benchmarks the ability of a software development team to deliver on business and technical requests - much like the systems they build which are meant to deliver on incoming requests efficiently.
Inspired from flow metrics, we can apply a similar set of metrics on our system:
1. Velocity or throughput: How many requests per second do we handle?
2. Time: How much time did we take to process a request?
3. Efficiency: Did a downstream dependency be the reason for our outage?
4. Load: If there are too many requests coming in, can we detect it?
In this talk I will focus on two things
- Why flow metrics matters to live applications at scale - this will focus on understanding the foundations of Flow metrics
- How flow metrics can help design better systems - this will focus on designing a system of measuring actionable metrics (for example, too much load can cause a cascading failure across multiple systems that are dependent on one system)
Mourjo Sen
Staff Software Engineer, Booking.com
Amsterdam, The Netherlands
Links
Please note that Sessionize is not responsible for the accuracy or validity of the data provided by speakers. If you suspect this profile to be fake or spam, please let us know.
Jump to top