Loosely Coupled Architecture

Published date: April 15, 2024, Version: 1.0

Overview

Research from the DevOps Research and Assessment (DORA) team shows that architecture is an important predictor for achieving continuous delivery. Whether you’re using Kubernetes or mainframes, your architecture enables teams to adopt practices that foster higher levels of software delivery performance.

With a tightly coupled architecture, small changes can result in large-scale, cascading failures. As a result, anyone working in one part of the system must constantly coordinate with anyone else working in another part of the system, including navigating complex and bureaucratic change management processes.

When teams adopt continuous delivery practices, adopting the following architectural practices drives successful outcomes:

Architectural Practice 1

  • Teams can make large-scale changes to the design of their systems without the permission of somebody outside the team or depending on other teams.

Architectural Practice 2

  • Teams are able to complete work without needing fine-grained communication and coordination with people outside the team.

Architectural Practice 3

  • Teams deploy and release their product or service on demand, independently of the services it depends on or of other services that depend on it.

Architectural Practice 4

  • Teams do most of their testing on demand, without requiring an integrated test environment.

Architectural Practice 5

  • Teams can deploy during normal business hours with negligible downtime.

Monolithic Architecture

Supports a lean product development effort (for example, rapid prototyping of new features, and potential pivots or large changes in strategies) is different from an architecture that needs hundreds of teams of developers, each of whom must be able to independently deliver value to the customer (as Microservices).

 Adoption expectations

System Components  MVP MVP+

Document existing architecture: business diagram

+

+

Document existing architecture: components diagram

+

+

Document existing architecture: deployment diagram

+

+

Document existing architecture: integration diagram

+

+

Document existing architecture: data flow diagram

+

+

Team can develop, and test changes independently from integrated services teams

+

+

Team can deploy and release changes independently from integrated services deployments

+

+

Architecture is mature, modern and corresponds to business needs

 

+

External dependencies are mocked or stubbed for testing purposes

 

+

Components may be deployed during business hours with no downtime

 

+

Document existing architecture: network diagram

 

+

Document existing architecture: access model documentation

 

+

Document existing architecture: security documentation

 

+

Document existing architecture:
architecture decision logs

 

+

Tools

Functionality  Tool Name 

Architecture design tools

Microsoft Visio, Draw.io, Miro, Lucidchart, Archi

Documentation Collaboration

Atlassian Confluence

 

Roles

Name  Responsibilities

Solution Architect

Design solution in a way to allow easy components and feature decoupling

System Architect

Design systems in a way to allow easy components and feature decoupling