Blog
Mert Özen's blog posts on software development, backend, frontend, and DevOps.
Deployment Diagrams: Nodes, Artifacts, Execution Environments and a Docker/Azure Topology
A deployment diagram shows which nodes and execution environments the software runs on, which artifact is placed where, and over which protocol and port the nodes talk. In this post we draw the HR Portal's docker compose development environment and its Azure production topology, and build the «manifest» bridge between artifacts and components.
The C4 Model: Context, Container, Component, Code and Notation Rules
The C4 model describes a software system as zooming maps at the Context, Container, Component and Code levels, each for a different reader; the first two levels are enough for most teams, and a C4 container is not a Docker container but a running application or data store. In this post we draw the HR Portal's Context, Container and Component diagrams following the notation checklist, write them as C4-PlantUML and show how to use C4 together with UML.
ER Diagrams: Chen and Crow's Foot Notation, Cardinality, Optionality and from Class Diagram to Tables
An ER diagram shows which tables hold the data and the minimum and maximum number of records at both ends of every relationship: Chen suits concept conversations, Crow's Foot suits table and FK conversations. In this post we draw the leave module in both notations, show how composition, association classes and inheritance become tables with real EF Core output, and generate a Mermaid erDiagram straight from the EF Core model.
Diagrams as Code with PlantUML: Syntax, C4-PlantUML, Includes and Rendering in CI
PlantUML describes a diagram in a text file and renders it locally or in CI, so the diagram changes in the same PR as the code, gets diffed and is validated with --check-syntax. This post walks through the PlantUML sources of the series' use case, class, sequence, state and C4 diagrams, sharing a style with !include, rendering in GitHub Actions, and the privacy risks of the public server and the source embedded in SVGs, with real output.
Mermaid and Structurizr DSL: Diagrams Inside Markdown, Model-Based C4 and Which One to Choose
Mermaid is the right tool for quick diagrams that render directly in GitHub and Azure DevOps Markdown, the Structurizr DSL for deriving consistent C4 views from a single model. This post converts the series' diagrams to Mermaid and shows its syntax traps with real output, draws the same container diagram with Structurizr and compares PlantUML, Mermaid and Structurizr.
End-to-End Modeling: Taking the Leave Module from Requirements to Working Code
Diagrams pay off when they form a traceable chain from requirement to endpoint, from state machine to domain code and from ER to migration, and when they answer "which diagram changes?" before a change is made. In the series finale we take the leave module to .NET 10 API, EF Core and Angular 22 code, measure the impact of a half-day leave requirement with git diff and show the real bugs the diagrams caught along the way.