Skip to content

Architecture

Giulio V edited this page Dec 19, 2025 · 2 revisions

📢 Important Update: LINDAS is undergoing a major infrastructure migration to LINDASnext. The current Stardog-based system is being replaced with GraphDB EE. New contracts have been awarded in two lots for the period 2025-2034: Lot 1 (Infrastructure) to Cognizone and Lot 2 (Application Development) to Liip, Zazuko, and Adnovum with their respective partners. Services remain operational during transition. See LINDASnext for details.

LINDAS Architecture

Architecture Overview

LINDAS uses a microservices architecture orchestrated by Kubernetes, providing scalability and high availability.

Core Infrastructure

Component Technology Provider Description
Cloud Provider Exoscale VSHN Swiss cloud infrastructure
Orchestration Kubernetes + Rancher RKE VSHN Container management
Monitoring Grafana, Graylog VSHN Monitoring and logging
Security Named graphs, Keycloak VSHN Access control

Data Flow

graph TD
    A[Data Sources] --> B[S3 Buckets / SFTP]
    B --> C[GitLab CI/CD]
    C --> D[barnard59 Pipeline]
    D --> E[Stardog Triplestore]
    E --> F[Trifid + Varnish]
    F --> G[User Applications]
Loading

Processing Steps

  1. Ingestion: S3 buckets and SFTP shares
  2. Processing: GitLab CI/CD pipelines with barnard59 engine
  3. Storage: Stardog triplestore with named graph security
  4. Distribution: Trifid dereferencing service with Varnish cache

Detailed Components

RDF Triplestore

  • Database: Stardog with named graph permissions
  • Access Control: User Role Operator (URO 2.0)
  • Availability: High availability cluster (target)
  • Backup: Docker images in independent registry

Data Delivery

  • S3 Buckets: S3-compatible storage for large files
  • SFTP: Secure transfer for government agencies
  • WebDAV: Collaborative file management

Performance

Architectural Diagram

graph TD
    %% Data Sources
    subgraph "Data Sources"
        DS[Data Publishers]
        CSV[CSV Files]
        API[External APIs]
    end

    %% Data Ingestion
    subgraph "Data Ingestion"
        S3[S3 Buckets]
        SFTP[SFTP Shares]
        WebDAV[WebDAV]
    end

    %% Processing Layer
    subgraph "Data Processing"
        CC[Cube Creator]
        GL[GitLab CI/CD]
        B59[barnard59 Pipeline]
        CV[Cube Validator]
    end

    %% Authentication & Security
    KC[Keycloak Authentication]
    URO[User Role Operator]

    %% Core Database
    subgraph "Triplestore Cluster"
        SD[Stardog Database]
        SDS[Stardog Studio]
    end

    %% Distribution Layer
    subgraph "Data Distribution"
        TR[Trifid Dereferencing]
        VC[Varnish Cache]
        SP[SPARQL Endpoints]
    end

    %% Applications & Frontend
    subgraph "Applications"
        VIZ[Visualize]
        GE[Graph Explorer]
        WEB[ld.admin.ch]
        APPS[Other Applications]
    end

    %% Monitoring
    subgraph "Monitoring & Management"
        GF[Grafana]
        GL2[GrayLog]
        PROM[Prometheus]
        STATUS[Status Page]
    end

    %% Infrastructure
    subgraph "Infrastructure"
        K8S[Kubernetes Cluster]
        RANCHER[Rancher]
    end

    %% Data Flow
    DS --> S3
    DS --> SFTP
    CSV --> CC
    
    S3 --> CC
    SFTP --> GL
    CC --> GL
    GL --> B59
    B59 --> CV
    CV --> SD
    
    KC --> CC
    URO --> SD
    
    SD --> TR
    TR --> VC
    VC --> SP
    SP --> VIZ
    SP --> GE
    SP --> WEB
    SP --> APPS
    
    %% Monitoring connections
    SD -.-> GF
    GL -.-> GL2
    K8S -.-> PROM
    PROM -.-> STATUS
    
    %% Infrastructure
    CC -.-> K8S
    GL -.-> K8S
    SD -.-> K8S
    TR -.-> K8S
    K8S -.-> RANCHER

    %% Styling (Dark mode compatible)
    classDef dataSource fill:#2d5aa0,stroke:#4a90e2,stroke-width:2px,color:#ffffff
    classDef processing fill:#7b1fa2,stroke:#9c27b0,stroke-width:2px,color:#ffffff
    classDef storage fill:#2e7d32,stroke:#4caf50,stroke-width:2px,color:#ffffff
    classDef distribution fill:#ef6c00,stroke:#ff9800,stroke-width:2px,color:#ffffff
    classDef application fill:#c2185b,stroke:#e91e63,stroke-width:2px,color:#ffffff
    classDef monitoring fill:#558b2f,stroke:#8bc34a,stroke-width:2px,color:#ffffff
    classDef infrastructure fill:#455a64,stroke:#607d8b,stroke-width:2px,color:#ffffff

    class DS,CSV,API dataSource
    class CC,GL,B59,CV processing
    class SD,SDS storage
    class TR,VC,SP distribution
    class VIZ,GE,WEB,APPS application
    class GF,GL2,PROM,STATUS monitoring
    class K8S,RANCHER infrastructure
Loading

Related Documentation

Clone this wiki locally