Monolithic

Notes:

  • A company may have more than one monolith

  • A monolith means a big heavy app

Pros:

  • Knowledge Sharing

  • Easier dependency management

  • Easier version management

  • Easier to track breakages across different projects

  • Easier to know what team is doing at a glance

Cons:

  • Harder to split code ownership

  • Harder to define responsibilities

  • Monolithic codebases can easily become a mess

    • No strong conventions

    • Can be harder to deploy

  • Increased complexity on codebase

  • Harder to distinguish responsibility of the codebase

  • A single release cycle where all components are released togther

Examples:

  • Facebook

    • Only WWW is a monolithic app

Questions:

  • When should you break down a monolithic app?

  • When should you unbundle a monolith?

Resources: