{"id":10294,"date":"2020-08-22T22:23:41","date_gmt":"2020-08-22T21:23:41","guid":{"rendered":"https:\/\/caroli.org\/en\/?p=10294"},"modified":"2021-04-30T13:56:17","modified_gmt":"2021-04-30T12:56:17","slug":"c4-model","status":"publish","type":"post","link":"https:\/\/caroli.org\/en\/c4-model\/","title":{"rendered":"C4 model"},"content":{"rendered":"<p>C4 is a model created by Simon Brown for depicting a software architecture by the 4 Cs &#8212; Context, Container, Component and Code&#8211;, as per the following definitions:<\/p>\n<ul>\n<li><strong>Context<\/strong> &#8211; the highest level of abstraction and describes something that delivers value to its users.<\/li>\n<li><strong>Container<\/strong> &#8211; 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)<\/li>\n<li><strong>Component<\/strong> &#8211; a collection of implementation classes behind an interface.<\/li>\n<li><strong>Code<\/strong> &#8211; the code elements (e.g. classes, interfaces, objects, functions, database tables, etc) within the component in scope.<\/li>\n<\/ul>\n<div id=\"attachment_10296\" style=\"width: 310px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-10296\" class=\"size-medium wp-image-10296\" src=\"https:\/\/caroli.org\/en\/wp-content\/uploads\/sites\/5\/2020\/06\/c4-model-300x225.png\" alt=\"\" width=\"300\" height=\"225\" srcset=\"https:\/\/caroli.org\/en\/wp-content\/uploads\/sites\/5\/2020\/06\/c4-model-300x225.png 300w, https:\/\/caroli.org\/en\/wp-content\/uploads\/sites\/5\/2020\/06\/c4-model-1024x768.png 1024w, https:\/\/caroli.org\/en\/wp-content\/uploads\/sites\/5\/2020\/06\/c4-model-1536x1152.png 1536w, https:\/\/caroli.org\/en\/wp-content\/uploads\/sites\/5\/2020\/06\/c4-model.png 2048w, https:\/\/caroli.org\/en\/wp-content\/uploads\/sites\/5\/2020\/06\/c4-model-1200x900.png 1200w, https:\/\/caroli.org\/en\/wp-content\/uploads\/sites\/5\/2020\/06\/c4-model-1440x1080.png 1440w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><p id=\"caption-attachment-10296\" class=\"wp-caption-text\">C4 model for visualising software architecture &#8211; Image source: https:\/\/c4model.com\/<\/p><\/div>\n<p>I have used C4 model as an activity in <a href=\"https:\/\/caroli.org\/en\/how-to-plan-an-inception\/\">technical inception sessions<\/a>, for detailing the technical aspects for the proposed software solution.<\/p>\n<p>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\u00a0 &#8216;container&#8217; 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<\/p>\n<p>For more about the C4 model, check out <a href=\"https:\/\/c4model.com\/\" target=\"_blank\" rel=\"noopener\">https:\/\/c4model.com\/<\/a><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>C4 is a model created by Simon Brown for depicting a software architecture by the 4 Cs &#8212; Context, Container, Component and Code&#8211;, as per the following definitions: Context &#8211; the highest level of abstraction and describes something that delivers value to its users. Container &#8211; something that needs to be running in order for [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":10296,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"categories":[1925,2162],"tags":[],"inception_activities":[],"colaboradores":[],"class_list":["post-10294","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-lean-inception-en","category-inception-activities"],"_links":{"self":[{"href":"https:\/\/caroli.org\/en\/wp-json\/wp\/v2\/posts\/10294","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/caroli.org\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/caroli.org\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/caroli.org\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/caroli.org\/en\/wp-json\/wp\/v2\/comments?post=10294"}],"version-history":[{"count":0,"href":"https:\/\/caroli.org\/en\/wp-json\/wp\/v2\/posts\/10294\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/caroli.org\/en\/wp-json\/wp\/v2\/media\/10296"}],"wp:attachment":[{"href":"https:\/\/caroli.org\/en\/wp-json\/wp\/v2\/media?parent=10294"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/caroli.org\/en\/wp-json\/wp\/v2\/categories?post=10294"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/caroli.org\/en\/wp-json\/wp\/v2\/tags?post=10294"},{"taxonomy":"inception_activities","embeddable":true,"href":"https:\/\/caroli.org\/en\/wp-json\/wp\/v2\/inception_activities?post=10294"},{"taxonomy":"colaboradores","embeddable":true,"href":"https:\/\/caroli.org\/en\/wp-json\/wp\/v2\/colaboradores?post=10294"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}