Security Testing Agent
Runtime Configuration
Feature Flags
eBook
eBook

Managing a Monolith Breakup | Harness Resource

In this guide, we describe the sequence of changes you can use to extract a functionality out from a monolith. We also highlight how the capabilities of a feature flagging framework can make this a safe and controlled transition.

Published
January 1, 2024

Guide on its way

Check your inbox — your playbook is ready.

You're all set

Check your inbox — your download is on the way.

Redirect link
Redirect link

What you'll learn

Key Takeaways

Use Incremental Steps for Safety

Break up monolithic systems using small, incremental steps rather than large leaps. This approach ensures safety and allows teams to continue delivering features in parallel.

Focus on Core Business Capabilities

Slice systems into independent services by focusing on core business capabilities. This ensures highly cohesive services and loose coupling between them.

Implement Branch by Abstraction

Gather existing internal functionality and introduce a facade to create a single choke point. This abstraction allows for a smooth transition to an external service.

Route Traffic Using a Toggler

Introduce a toggler powered by feature flags to route requests between the internal and external facades. This enables safe canary launches by slowly ramping up traffic to the new service.

Design Facades for Distributed Systems

Avoid designing the initial facade as if it will always be local. Expect a broad range of failure modes and avoid synchronous request-reply interactions.

Avoid Remodeling During Extraction

Extract functionality without changing its externally observable behavior first. Wait until the internal implementation is removed before upgrading the model to prevent mapping issues.