Короткий ответ
Монолит — это приложение, собранное и развёрнутое как единый процесс/артефакт, где все модули работают в общей памяти и общей базе данных; подходит на старте проекта, при небольшой команде и неопределённых границах домена.
Как это работает подробнее
Весь код (API, бизнес-логика, доступ к БД) живёт в одном репозитории и деплоится одним артефактом; внутренние вызовы — обычные вызовы функций, а не сетевые запросы.
Пример кода
Схема
myapp/
orders/
service.py
repository.py
users/
service.py
payments/
service.py
api/
routers.pyЧто использовать на практике
- Практика. Монолит проще разрабатывать, тестировать и деплоить на старте — один процесс CI/CD, одна БД, нет сетевых издержек между модулями; важно поддерживать модульность внутри (слои, пакеты), чтобы монолит не превратился в «big ball of mud».
Подводные камни
- Риск. Считать монолит «плохой» архитектурой по умолчанию; разбивать на сервисы слишком рано, когда домен ещё не понят, что увеличивает сложность без пользы.