The C4 model helps move from a system’s environment towards implementation detail. Its levels are system context, containers, components and code. In C4, a “container” is a deployable application or data store; it does not have to be a Docker container.

Context

Who uses the system, and which other systems does it interact with?

Containers

Which applications and data stores make up the system, and how does information flow between them?

Components

How are responsibilities divided inside one application?

Code

How is a selected part implemented when that level of detail helps?

You do not need all four levels. Start with context and containers, then add detail wherever it answers a specific question.