Search code examples
architecturelanguage-concepts

Self-Contained Systems vs Monolithic


I just need to know is there is a difference between Self-Contained Systems (SCS) and the Monolithic ones, And SCS is different from microservice or it's the same?


Solution

  • Here is a definition of self-contained systems (source):

    The Self-contained System (SCS) approach is an architecture that focuses on a separation of the functionality into many independent systems, making the complete logical system a collaboration of many smaller software systems. This avoids the problem of large monoliths that grow constantly and eventually become unmaintainable.

    So yes, self-contained systems are very different from monolithic systems.

    Regarding the relationship of self-contained systems and microservices, they share the idea of breaking down the system into smaller independent subsystems. However, important differences are (source) that

    • self-contained systems do not communicate with each other,
    • self-contained systems each have their own UI, whereas microservices do not necessarily have a UI or share a common one.

    This article gives another important characteristic:

    A system that just provides an API is not an SCS by definition. It might still be considered a useful architecture, of course - but it would not be called SCS.