Spensara Spensara Knowledge Base & Documentation Repository

Repository Docs & Knowledge Base

Consolidated Spensara documentation repository (722 Markdown & architecture documents in ../repository)
Built Word Documents (.docx): Spensara Overview (.docx) Capability Assessment (.docx) Brink POS Ingestion Analysis (.docx) The Borg Ingestion Architecture (.docx)
architecture/c4/docs/C4/customer_model.c4 1,871 bytes · Updated Oct 23, 2026 10:44 AM EDT
Raw File
model {
  customersystem = system 'Customer System' {
    description 'Restaurant systems for order management, inventory, and operations'

    sourceDb = database 'Source Database' {
        description '
        Customer operational database exposed for replication or change extraction.
        Can represent KDS, POS, inventory, or other back-office systems.
        Used when CDC is the best path for keeping a warehouse copy of source tables.
        '
    }

    pushsource = service 'Push Source' {
        description '
        Systems that can post data or batches directly to KDSAI.
        Examples include KDS, POS, or other restaurant apps using API push.
        '
        style {
            shape component
        }
    }

    fileuploads = service 'File Exports' {
        description '
        Periodic CSV/Excel exports from legacy POS or manual reports.
        Daily sales reports, inventory counts, labor summaries.
        Primary onboarding path for customer data.
        '
        style {
            shape component
        }
    }

    pullapi = service 'Pull API' {
        description '
        External REST or GraphQL APIs polled by the ETL worker on a schedule.
        Used when the customer system cannot push data but exposes a programmable API.
        '
        style {
            shape component
        }
    }
  }

  // --- File upload path ---
  customersystem.fileuploads -[etl]-> kdsai.etl.ingestionApi 'Uploads files through'

  // --- API push path ---
  customersystem.pushsource -[etl]-> kdsai.etl.ingestionApi 'Pushes data to'

  // --- API pull path ---
  customersystem.pullapi -[etl]-> kdsai.etl.etlWorker 'ETL Worker pulls data on schedule'

  // --- CDC path ---
  kdsai.etl.etlWorker -[etl]-> customersystem.sourceDb 'Extracts snapshots and changes from'
}