In real terms, a container is something like: A container is something that needs toīe running in order for the overall software system to work. Not Docker! In the C4 model, a container represents an application or a data store. In many cases, a software system is 'owned by' a single software development team. This includes the software system you are modelling, and the other software systems upon which your software system depends (or vice versa). actors, roles, personas, etc).Ī software system is the highest level of abstraction and describes something that delivers value to its users, whether they are human or not. PersonĪ person represents one of the human users of your software system (e.g. classes, interfaces, objects, functions, etc). Which in turn are implemented by one or more code elements (e.g.
The C4 model considers the static structures of a software system in terms of containers, components and code.Īnd people use the software systems that we build.Ī software system is made up of one or more containers (web applications, mobile apps, desktop applications, databases, file systems, etc),Įach of which contains one or more components, In order to create these maps of your code, we first need a common set of abstractions to create a ubiquitous language that we can use to describe the static structure of a software system.