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' }