Container View: Gesso CMS

The CMS abstraction layer. Each provider adapts one headless CMS to the shared Gesso CMS interface. Storyblok has two providers, one per API.

flowchart LR
    drupal("Drupal Headless<br/>[Software System]")
    storyblok("Storyblok<br/>[Software System]")

    subgraph gessoCMS["Gesso CMS [Software System]"]
        drupalProvider("Drupal Provider<br/>[Container]")
        storyblokProvider("Storyblok Provider<br/>[Container]")
        storyblokRestProvider("Storyblok REST Provider<br/>[Container]")
    end

    drupal -. "GraphQL, JSON:API" .-> drupalProvider
    storyblok -. "GraphQL" .-> storyblokProvider
    storyblok -. "REST" .-> storyblokRestProvider

    classDef external fill:#64748b,stroke:#475569,color:#ffffff
    classDef container fill:#dbeafe,stroke:#2563eb,color:#1e3a8a
    class drupal,storyblok external
    class drupalProvider,storyblokProvider,storyblokRestProvider container
    style gessoCMS fill:none,stroke:#7d8794,stroke-width:2px,stroke-dasharray:6 4