C4 Model BETA
Архитектурные диаграммы контекста и контейнеров на базе Mermaid
Уровни C4-модели
L1
Context (Контекст)
Высокоуровневая карта системы. Показывает пользователей и внешние системы, с которыми взаимодействует ваша система.
Person System System_Ext Rel
L2
Container (Контейнер)
Внутренняя архитектура системы: приложения, базы данных, очереди сообщений. Каждый контейнер — технологический блок.
Container ContainerDb Container_Ext Boundary
L3
Component (Компонент)
Внутренняя структура контейнера: модули, сервисы, контроллеры. Для бизнес-процессов — логические блоки обработки.
Component ComponentDb Component_Ext
L4
Code (Код)
Детальная UML-диаграмма классов. Используется редко, только для сложных компонентов. В Mermaid — через classDiagram.
classDiagram class interface
Ключевые слова Mermaid C4
Элементы
Person(alias, label, descr)- Человек-участник (пользователь, клиент, оператор)
System(alias, label, descr)- Ваша система или её часть
System_Ext(alias, label, descr)- Внешняя система (API, сервис)
Container(alias, label, tech, descr)- Технологический блок (приложение, БД, очередь)
ContainerDb(alias, label, tech, descr)- База данных
Component(alias, label, tech, descr)- Логический компонент внутри контейнера
Связи
Rel(from, to, label, tech)- Связь между элементами (запрос, поток данных)
BiRel(from, to, label)- Двунаправленная связь
Группировка
Boundary(alias, label)- Граница (система, контейнер, enterprise)
Enterprise_Boundary(alias, label)- Граница предприятия
System_Boundary(alias, label)- Граница системы
Container_Boundary(alias, label)- Граница контейнера
Конфигурация
UpdateLayoutConfig($c4ShapeInRow="3")- Количество элементов в строке
UpdateLayoutConfig($c4BoundaryInRow="1")- Количество границ в строке
Стили
UpdateElementStyle(alias, bg, font, border)- Стилизация элемента
UpdateRelStyle(from, to, color)- Стилизация связи
Полезные слова для диаграмм бизнес-процессов
Акторы
- Клиент / Customer
Person(customer, "Клиент", "Инициирует процесс")- Оператор / Officer
Person(officer, "Оператор", "Обрабатывает заявки")- Система / System
System(core, "Основная система", "Бизнес-логика")
Действия
- Подать заявку
Rel(customer, core, "Подает заявку")- Проверить документы
Rel(core, docService, "Проверяет документы")- Согласовать / Approve
Rel(core, approval, "Согласует")- Уведомить / Notify
Rel(core, notification, "Уведомляет")
Технологии
- REST API / gRPC
- Протокол связи
- PostgreSQL / MongoDB
- Тип базы данных
- RabbitMQ / Kafka
- Очередь сообщений
- S3 / MinIO
- Хранилище файлов