An architectural layer is an abstraction that A) describes a role in a pattern of components and their communication, B) identifies a set of components that play this role in a concrete architecture. So is C4 restricted? Because it doesn't seem to allow to integrate other abstractions?
Assuming that the microservice's database (schema) (shared by the server instances of the microservice) is hosted on a shared database service (DBMS). How could the database (schema) then be considered a (top level) container in itself? The database server is a container (on the infrastructure dimension). The database (schema) is rather a component of the microservice (on the organisational dimension), although it could be considered as a sub-container of the DBMS on the infrastructure dimension.
The schema should probably be a container in the microservice's context, you can emphasize sharing of containers with other contexts using color notation. However, if there is a separate team that works on the database, the database software would be a top-level context. in that context it would have schema containers used by microservice contexts.
I love ilograph for this. You can just fine-tune an AI on your repos and have the LLM keep the diagrams up to date
@@mikestaub omg there is something like that
An architectural layer is an abstraction that
A) describes a role in a pattern of components and their communication,
B) identifies a set of components that play this role in a concrete architecture.
So is C4 restricted? Because it doesn't seem to allow to integrate other abstractions?
you can create a "group" around systems, containers, or components
@KirbyZhang So we have the "C4+G" model 😀
@@micknamens8659 I've been using likec4 myself. it allows for any abstraction you define.
32:08 IMO that is overstretching the "system" concept. I mean, when the capabilities boundaries being to spread out across multiple systems. Not good.
Assuming that the microservice's database (schema) (shared by the server instances of the microservice) is hosted on a shared database service (DBMS). How could the database (schema) then be considered a (top level) container in itself? The database server is a container (on the infrastructure dimension). The database (schema) is rather a component of the microservice (on the organisational dimension), although it could be considered as a sub-container of the DBMS on the infrastructure dimension.
The schema should probably be a container in the microservice's context, you can emphasize sharing of containers with other contexts using color notation. However, if there is a separate team that works on the database, the database software would be a top-level context. in that context it would have schema containers used by microservice contexts.
19:42 this is a weak excuse. c4 really lacks composability on the system level.
Why risking to introduce misinterpretations with these abstractions, when you can literally just visualize your actual codebase?