C4 model

C4 is a model created by Simon Brown for depicting a software architecture by the 4 Cs — Context, Container, Component and Code–, as per the following definitions:

  • Context – the highest level of abstraction and describes something that delivers value to its users.
  • Container – something that needs to be running in order for the overall software system to work (e.g.: a Server-side web application, a Microservice, a Serverless function, a File system)
  • Component – a collection of implementation classes behind an interface.
  • Code – the code elements (e.g. classes, interfaces, objects, functions, database tables, etc) within the component in scope.

C4 model for visualising software architecture – Image source: https://c4model.com/

I have used C4 model as an activity in technical inception sessions, for detailing the technical aspects for the proposed software solution.

The 4 Cs terminology (context, containers, components and code) is commonly used by many organisations and many types of software. Although, it is important to note that  ‘container’ is not the docker container. Two examples of containers: (1) a micro-service, along with its data store, and (2) a monolithic application with a number of components running inside it

For more about the C4 model, check out https://c4model.com/

 

 

 

Paulo Caroli

Paulo Caroli is an author, speaker, and consultant specializing in agile transformations, Lean Inception, and OKRs. With over 30 years of experience—including nearly a decade in Silicon Valley and 18 years at ThoughtWorks—he has helped organizations transition from project to product and from strategy to execution. Creator of the Lean Inception methodology and author of bestselling books like Lean Inception and Team OKR, Paulo is dedicated to empowering teams to align, validate, and deliver real business value.
Team Architecture Redesign

Team Architecture Redesign

The "Team Architecture Redesign" activity is a structured process designed to help teams critically assess and revamp their current structures. It's an opportunity to compare different organizational frameworks, ultimately choosing the most fitting structure and...

read more
Process flowchart diagram

Process flowchart diagram

A Process Flowchart Diagram helps teams visualize how work flows across a process — from start to finish. Using simple shapes like boxes, diamonds, and arrows, it clarifies each action and decision point, revealing inefficiencies and opportunities for improvement. When created collaboratively, a flowchart becomes a shared tool for alignment, clarity, and continuous improvement.

read more

Pin It on Pinterest