Pros: simple development and deployment, easy local testing/debugging, and strong consistency with straightforward transactions. Cons: harder to scale parts independently, slower deploy cycles, and a growing codebase can become tightly coupled and harder to change safely.