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.

test

Milly
Vienna, Austria

Intermediate

test

Milly
Vienna, Austria

Intermediate

Featured Partners

Related Articles

View all articles
BB
Benedikt Bischof
Why You Shouldn’t Build a Microservice Architecture
Welcome to this issue of the WeAreDevelopers Live Talk series. This article recaps an interesting talk by Michael Eisenbart who talks about the pros and cons of microservice architecture.‍About the speaker:‍Michael has been working for Bosch as a sof...
Why You Shouldn’t Build a Microservice Architecture
DC
Daniel Cranney
The real reason we document our code
The world of software development moves fast. Technology is constantly changing, as are the tools we use with it, and even the role of a programmer is itself constantly in flux. However, some aspects of software engineering are so foundational that w...
The real reason we document our code

From learning to earning

Jobs that call for the skills explored in this talk.