Un monolithe est une application dont l'ensemble du code — logique métier, accès aux données, rendu des interfaces — est regroupé dans un seul projet, déployé comme une seule unité. C'est l'architecture la plus naturelle et la plus simple à comprendre, développer et déployer.
Contrairement à une idée répandue, le monolithe n'est pas synonyme de code spaghetti. Un monolithe bien structuré (modulaire, avec des couches séparées et des interfaces claires entre les modules) offre les mêmes avantages d'organisation qu'une architecture distribuée, sans la complexité opérationnelle associée.
Le monolithe est le bon choix par défaut pour la grande majorité des projets : PME, startups en phase de construction, applications métier. Il permet de livrer rapidement, de refactorer facilement et de n'introduire la distribution que lorsque le besoin est avéré. Symfony, avec son système de bundles et de modules, est particulièrement adapté à la construction de monolithes modulaires et évolutifs.