Skip to content

C4 Model

System diagram

C4Context
    title System Context diagram for Cloudia Application

    Enterprise_Boundary(company_boundary, "Company Boundary", "Company") {
        Person(customer, "End user", "A Cloud Administrator of the company.")

        Enterprise_Boundary(claudia_boundary, "Cloudia Boundary", "Cloudia Application.") {
            System(cloudia_system, "Cloudia System", "Get overview on all your Cloud Projects.")
        }
    }

    Boundary(cloud_provider, "Cloud Providers", "Cloud Providers platforms."){
        System_Ext(aws_system, "Amazon Web Services System", "Amazon Web Services platform.")
        System_Ext(gcp_system, "Google Cloud System", "Google Cloud platform.")
        System_Ext(cloud_system, "Cloud Provider System", "Another Cloud Provider platform.")
    }

    Rel(customer, cloudia_system, "Watch", "Web")
    Rel(cloudia_system, aws_system, "Get accounts", "API")
    Rel(cloudia_system, gcp_system, "Get projects", "API")
    Rel(cloudia_system, cloud_system, "Get projects", "API")

    UpdateLayoutConfig($c4ShapeInRow="1", $c4BoundaryInRow="2")

Container diagram

C4Context
    title Container diagram for Cloudia Application

    Enterprise_Boundary(company_boundary, "Company Boundary", "Company") {

        Person(customer, "End user", "A Cloud Administrator of the company.")

        Container_Boundary(bspauto_boundary, "BSP Auto Application") {
            Container(app_front, "Frontend", "JavaScript, Vue.js", "Provides overview on all your Cloud Projects.")
            Container(app_api, "API", "Python, FastAPI", "Delivers data to the frontend.")
            ContainerDb(database, "Database", "PostgreSQL", "Stores user registration information, preferences and company-scope RBAC.")
            ContainerDb(cache, "Cache", "Redis", "Stores data in cache for faster response.")
        }
    }

    Boundary(cloud_provider, "Cloud Providers", "Cloud Providers platforms."){
        System_Ext(aws_system, "Amazon Web Services System", "Amazon Web Services platform.")
        System_Ext(gcp_system, "Google Cloud System", "Google Cloud platform.")
        System_Ext(cloud_system, "Cloud Provider System", "Another Cloud Provider platform.")
    }


    Rel(customer, app_front, "Uses", "HTTPS")
    Rel(customer, app_api, "Uses", "HTTPS")
    Rel_Back(database, app_api, "Reads from and writes to", "sync")
    Rel_Back(cache, app_api, "Reads data in cache", "fetch")
    Rel(app_api, aws_system, "Get accounts", "API")
    Rel(app_api, gcp_system, "Get projects", "API")
    Rel(app_api, cloud_system, "Get projects", "API")

    UpdateLayoutConfig($c4ShapeInRow="2", $c4BoundaryInRow="2")

Component System diagram