Pratishtha Pandey

Modularity: Let's dig deeper

What if the true cost of a change in your system could be measured? Learn how quantitative metrics can tame microservice complexity and accelerate innovation.

Modularity: Let's dig deeper
#1about 3 minutes

Defining modularity and its importance in system design

Modularity is the practice of dividing a system into separate, independent parts to improve communication and decision-making during the design process.

#2about 6 minutes

The hidden complexity of large microservice landscapes

While microservices offer benefits like fast delivery, they can create a complex, tangled landscape that slows down innovation when new business requirements touch multiple services.

#3about 2 minutes

Moving from gut feeling to quantitative architectural metrics

Instead of relying on intuition, teams should measure modularity at the product and domain level using concrete metrics, similar to how code quality is measured.

#4about 3 minutes

Measuring system tangles with average component dependency

The average component dependency (ACD) metric helps quantify the overall connectedness of a system by averaging the direct and indirect dependencies for each microservice.

#5about 3 minutes

Calculating propagation cost to measure change impact

Propagation cost (PC) is a key metric that measures the ripple effect of a change in one component across the entire system, directly impacting innovation speed.

#6about 2 minutes

Using lack of cohesion metrics for service grouping

The lack of cohesion metric helps determine if a group of microservices truly belongs together by analyzing shared concerns, such as data access patterns.

#7about 3 minutes

Applying coupling factor and other metrics in practice

By calculating the coupling factor and tracking metrics on a dashboard, teams can monitor trends and make informed decisions about system architecture and team structure.

#8about 2 minutes

Considering the modular monolith for easier refactoring

The modular monolith pattern offers a middle ground by enforcing strong boundaries between modules while keeping them in a single deployable unit, simplifying refactoring.

#9about 2 minutes

Key takeaways for adopting a modularity mindset

Adopting modularity requires a mindset change that extends beyond engineering to business decisions, experimentation with metrics, and sharing learnings with the community.

#10about 1 minute

Tools for tracking dependencies in large-scale systems

To count direct and indirect connections in complex systems, tools like Istio for service mesh data and distributed tracing can be used to automate dependency discovery.

Related jobs
Jobs that call for the skills explored in this talk.

Featured Partners

From learning to earning

Jobs that call for the skills explored in this talk.

Rust and GoLang

Rust and GoLang

NHe4a GmbH
Karlsruhe, Germany

Remote
55-65K
Intermediate
Senior
Go
Rust