Categories
Branches (328)
- extract-raw-xml/agent-tooling/backend/tests/AGENTS.md
- extract-raw-xml/architecture/docs/ETL.md
- extract-raw-xml/etl/docs/features/ETL/epics/03-s3-landing-replay-and-failure-storage/index.md
- extract-raw-xml/etl/docs/features/ETL/epics/03-s3-landing-replay-and-failure-storage/s3-storage-e2e-test-plan.md
- extract-raw-xml/etl/docs/features/ETL/epics/03-s3-landing-replay-and-failure-storage/s3-storage-implementation-plan.md
- extract-raw-xml/etl/docs/features/ETL/epics/03-s3-landing-replay-and-failure-storage/s3-storage-proposal.md
- extract-raw-xml/etl/docs/features/ETL/epics/03-s3-landing-replay-and-failure-storage/s3-storage-streaming-implementation-plan.md
- extract-raw-xml/etl/docs/features/ETL/epics/03-s3-landing-replay-and-failure-storage/source-task.md
- extract-raw-xml/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/01-first-job-foundation/01-brink-extract-boundary.md
- extract-raw-xml/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/01-first-job-foundation/02-source-connection-and-tenant-binding.md
- extract-raw-xml/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/01-first-job-foundation/03-extract-schedule-and-dispatch-contract.md
- extract-raw-xml/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/01-first-job-foundation/04-ingestion-batch-and-checkpoint-contract.md
- extract-raw-xml/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/01-first-job-foundation/05-raw-capture-and-failure-packaging.md
- extract-raw-xml/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/01-first-job-foundation/06-endpoint-catalog-and-execution-policy.md
- extract-raw-xml/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/01-first-job-foundation/07-raw-to-load-normalization-seam.md
- extract-raw-xml/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/01-first-job-foundation/08-first-job-design-input.md
- extract-raw-xml/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/01-first-job-foundation/09-first-job-design-v1.md
- extract-raw-xml/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/01-first-job-foundation/10-foundation-summary.md
- extract-raw-xml/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/01-first-job-foundation/11-raw-to-load-job-design-v1.md
- extract-raw-xml/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/01-first-job-foundation/12-missing-relational-load-mappings.md
- extract-raw-xml/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/01-first-job-foundation/13-load-to-redshift-staging-job-design-v1.md
- extract-raw-xml/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/01-first-job-foundation/14-staging-to-curated-job-design-v1.md
- extract-raw-xml/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/01-first-job-foundation/15-end-to-end-pipeline-summary.md
- extract-raw-xml/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/01-first-job-foundation/index.md
- extract-raw-xml/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/adapter-architecture-poc-simple.md
- extract-raw-xml/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/adapter-architecture.md
- extract-raw-xml/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/facade-implementation-plan.md
- extract-raw-xml/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/facade-streaming-implementation-plan.md
- extract-raw-xml/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/facade-streaming-review-fix-plan.md
- extract-raw-xml/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/first-etl-job-proposal.md
- extract-raw-xml/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/index.md
- extract-raw-xml/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/integration-flow.md
- extract-raw-xml/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/poc-checklist.md
- extract-raw-xml/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/relational-load-staging-implementation-plan.md
- extract-raw-xml/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/source-task.md
- extract-raw-xml/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/staging-to-curated-mapping.md
- extract-raw-xml/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/technical-integration-notes.md
- extract-raw-xml/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/xml-to-parquet-implementation-plan.md
- extract-raw-xml/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/xml-to-parquet-proposal.md
- extract-raw-xml/etl/docs/features/ETL/index.md
- extract-raw-xml/implementation-specs/specs/BrinkPosOrdersFirstEtlJob/TASK.md
- extract-raw-xml/implementation-specs/specs/BrinkPosOrdersFirstEtlJob/TASK0.md
- extract-raw-xml/implementation-specs/specs/BrinkPosOrdersFirstEtlJob/TASK1.md
- extract-raw-xml/implementation-specs/specs/BrinkPosOrdersFirstEtlJob/TASK2.1.md
- extract-raw-xml/implementation-specs/specs/BrinkPosOrdersFirstEtlJob/TASK2.2.md
- extract-raw-xml/implementation-specs/specs/BrinkPosOrdersFirstEtlJob/TASK2.3.md
- extract-raw-xml/implementation-specs/specs/BrinkPosOrdersFirstEtlJob/TASK2.4.md
- extract-raw-xml/implementation-specs/specs/BrinkPosOrdersFirstEtlJob/TASK2.md
- extract-raw-xml/implementation-specs/specs/BrinkPosOrdersFirstEtlJob/TASK3.md
- extract-raw-xml/implementation-specs/specs/BrinkPosOrdersFirstEtlJob/TASK4.md
- extract-raw-xml/implementation-specs/specs/BrinkPosOrdersFirstEtlJob/TASK5.md
- extract-raw-xml/implementation-specs/specs/BrinkPosOrdersFirstEtlJob/TASK6.md
- extract-raw-xml/implementation-specs/specs/BrinkPosOrdersFirstEtlJob/TASK7.md
- extract-raw-xml/implementation-specs/specs/BrinkPosOrdersFirstEtlJob/TASK8.md
- extract-raw-xml/research/temp/brink-pos-integration-research.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/customers.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/index.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/inventory_items.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/kitchen_item_status_events.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/kitchen_orders.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/kitchen_order_items.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/loyalty_customers.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/pos_catalog_items.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/pos_hourly_sales.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/pos_menu_items.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/pos_modifiers.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/pos_orders.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/pos_order_items.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/pos_tables.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/pos_table_definitions.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/pos_tenders.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/pos_transactions.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/pos_transaction_items.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/pos_transaction_tenders.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_kitchen_get_order_bump_times.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_kitchen_get_order_item_bump_times.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_sales2_get_current_business_date.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_sales2_get_orders.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_settings2_get_brands.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_settings2_get_destinations.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_settings2_get_employees.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_settings2_get_items.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_settings2_get_kitchen_queues.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_settings2_get_last_modified_time.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_settings2_get_menu.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_settings2_get_tables.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_settings2_get_taxes.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_settings_get_day_parts.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_settings_get_item_groups.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_settings_get_modifier_codes.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_settings_get_modifier_groups.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_settings_get_registers.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_settings_get_revenue_centers.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_settings_get_sections.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_settings_get_tenders.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/index.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/curated-model/customers.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/curated-model/index.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/curated-model/inventory_items.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/curated-model/kitchen_item_status_events.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/curated-model/kitchen_orders.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/curated-model/kitchen_order_items.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/curated-model/loyalty_customers.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/curated-model/pos_catalog_items.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/curated-model/pos_hourly_sales.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/curated-model/pos_menu_items.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/curated-model/pos_modifiers.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/curated-model/pos_orders.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/curated-model/pos_order_items.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/curated-model/pos_tables.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/curated-model/pos_table_definitions.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/curated-model/pos_tenders.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/curated-model/pos_transactions.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/curated-model/pos_transaction_items.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/curated-model/pos_transaction_tenders.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/curated-model/todo.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/index.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/logic-control-aloha-staging-model/aloha_gnditem.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/logic-control-aloha-staging-model/aloha_gndsale.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/logic-control-aloha-staging-model/aloha_gndslsum.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/logic-control-aloha-staging-model/aloha_gndtndr.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/logic-control-aloha-staging-model/aloha_itm.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/logic-control-aloha-staging-model/aloha_mod.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/logic-control-aloha-staging-model/aloha_tab.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/logic-control-aloha-staging-model/aloha_tabdef.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/logic-control-aloha-staging-model/aloha_tdr.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/logic-control-aloha-staging-model/index.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/logic-control-kds-staging-model/index.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/logic-control-kds-staging-model/kds_customers.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/logic-control-kds-staging-model/kds_items.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/logic-control-kds-staging-model/kds_item_bumps.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/logic-control-kds-staging-model/kds_orders.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/logic-control-pos-staging-model/index.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/logic-control-pos-staging-model/labpos_inventory_items.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/logic-control-pos-staging-model/labpos_wp_loyalty.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/logic-control-pos-staging-model/labpos_wp_pos_items.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/logic-control-pos-staging-model/labpos_wp_pos_orders.md
- extract-raw-xml/warehouse-model/docs/features/ETL/warehouse-data/logic-control-pos-staging-model/labpos_wp_pos_order_items.md
- feature-fleet-import/architecture/docs/curated-redshift-schema.md
- feature-fleet-import/etl/docs/features/ETL/fleet/fleet-s3-direct-import-operations.md
- feature-fleet-import/implementation-specs/specs/ImportFromS3ToRedshift/main.md
- feature-fleet-import/implementation-specs/specs/ImportFromS3ToRedshift/proposed-solution.md
- feature-fleet-import/implementation-specs/specs/ImportFromS3ToRedshift/TASK.md
- feature-fleet-import/implementation-specs/specs/ImportFromS3ToRedshift/TASK0.md
- feature-fleet-import/implementation-specs/specs/ImportFromS3ToRedshift/TASK1.md
- feature-fleet-import/implementation-specs/specs/ImportFromS3ToRedshift/TASK2.md
- feature-fleet-import/implementation-specs/specs/ImportFromS3ToRedshift/TASK3.md
- feature-fleet-import/implementation-specs/specs/ImportFromS3ToRedshift/TASK4.md
- feature-fleet-import/implementation-specs/specs/ImportFromS3ToRedshift/TASK5.md
- feature-fleet-import/implementation-specs/specs/ImportFromS3ToRedshift/TASK6.md
- feature-fleet-import/implementation-specs/specs/ImportFromS3ToRedshift/TASK7.md
- kds_cdc_improvments/implementation-specs/specs/MonitorSpecsCuratedRedshiftRewrite/TASK.md
- kds_cdc_improvments/implementation-specs/specs/MonitorSpecsCuratedRedshiftRewrite/TASK1.1.md
- kds_cdc_improvments/implementation-specs/specs/MonitorSpecsCuratedRedshiftRewrite/TASK1.2.md
- kds_cdc_improvments/implementation-specs/specs/MonitorSpecsCuratedRedshiftRewrite/TASK2.1.md
- kds_cdc_improvments/implementation-specs/specs/MonitorSpecsCuratedRedshiftRewrite/TASK2.2.md
- kds_cdc_improvments/implementation-specs/specs/MonitorSpecsCuratedRedshiftRewrite/TASK3.1.md
- kds_cdc_improvments/implementation-specs/specs/MonitorSpecsCuratedRedshiftRewrite/TASK3.2.md
- kds_cdc_improvments/implementation-specs/specs/MonitorSpecsCuratedRedshiftRewrite/TASK4.1.md
- kds_cdc_improvments/monitor-specs/backend/Kds.Ai.Data/MonitorSpecs/customer-churn-risk.md
- kds_cdc_improvments/monitor-specs/backend/Kds.Ai.Data/MonitorSpecs/customer-profiles.md
- kds_cdc_improvments/monitor-specs/backend/Kds.Ai.Data/MonitorSpecs/daily-forecast.md
- kds_cdc_improvments/monitor-specs/backend/Kds.Ai.Data/MonitorSpecs/demand-drivers.md
- kds_cdc_improvments/monitor-specs/backend/Kds.Ai.Data/MonitorSpecs/forecast-demand.md
- kds_cdc_improvments/monitor-specs/backend/Kds.Ai.Data/MonitorSpecs/forgotten-items.md
- kds_cdc_improvments/monitor-specs/backend/Kds.Ai.Data/MonitorSpecs/identify-high-value-customers.md
- kds_cdc_improvments/monitor-specs/backend/Kds.Ai.Data/MonitorSpecs/identify-plowhorse-items.md
- kds_cdc_improvments/monitor-specs/backend/Kds.Ai.Data/MonitorSpecs/identify-star-items.md
- kds_cdc_improvments/monitor-specs/backend/Kds.Ai.Data/MonitorSpecs/incorporate-seasonality.md
- kds_cdc_improvments/monitor-specs/backend/Kds.Ai.Data/MonitorSpecs/inventory-levels.md
- kds_cdc_improvments/monitor-specs/backend/Kds.Ai.Data/MonitorSpecs/kitchen-performance.md
- kds_cdc_improvments/monitor-specs/backend/Kds.Ai.Data/MonitorSpecs/menu-item-profitability.md
- kds_cdc_improvments/monitor-specs/backend/Kds.Ai.Data/MonitorSpecs/monthly-forecast.md
- kds_cdc_improvments/monitor-specs/backend/Kds.Ai.Data/MonitorSpecs/optimal-pricing-adjustments.md
- kds_cdc_improvments/monitor-specs/backend/Kds.Ai.Data/MonitorSpecs/optimize-order-quantities.md
- kds_cdc_improvments/monitor-specs/backend/Kds.Ai.Data/MonitorSpecs/pricing-recommendations.md
- kds_cdc_improvments/monitor-specs/backend/Kds.Ai.Data/MonitorSpecs/seasonality-trends.md
- kds_cdc_improvments/monitor-specs/backend/Kds.Ai.Data/MonitorSpecs/segment-customers.md
- kds_cdc_improvments/monitor-specs/backend/Kds.Ai.Data/MonitorSpecs/segment-descriptions.md
- kds_cdc_improvments/monitor-specs/backend/Kds.Ai.Data/MonitorSpecs/waste-reduction.md
- kds_cdc_improvments/monitor-specs/backend/Kds.Ai.Data/MonitorSpecs/weekly-forecast.md
- life-cycle/agent-tooling/backend/tests/AGENTS.md
- life-cycle/architecture/docs/ETL.md
- life-cycle/etl/docs/features/ETL/epics/03-s3-landing-replay-and-failure-storage/index.md
- life-cycle/etl/docs/features/ETL/epics/03-s3-landing-replay-and-failure-storage/s3-storage-e2e-test-plan.md
- life-cycle/etl/docs/features/ETL/epics/03-s3-landing-replay-and-failure-storage/s3-storage-implementation-plan.md
- life-cycle/etl/docs/features/ETL/epics/03-s3-landing-replay-and-failure-storage/s3-storage-proposal.md
- life-cycle/etl/docs/features/ETL/epics/03-s3-landing-replay-and-failure-storage/s3-storage-streaming-implementation-plan.md
- life-cycle/etl/docs/features/ETL/epics/03-s3-landing-replay-and-failure-storage/source-task.md
- life-cycle/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/01-first-job-foundation/01-brink-extract-boundary.md
- life-cycle/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/01-first-job-foundation/02-source-connection-and-tenant-binding.md
- life-cycle/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/01-first-job-foundation/03-extract-schedule-and-dispatch-contract.md
- life-cycle/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/01-first-job-foundation/04-ingestion-batch-and-checkpoint-contract.md
- life-cycle/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/01-first-job-foundation/05-raw-capture-and-failure-packaging.md
- life-cycle/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/01-first-job-foundation/06-endpoint-catalog-and-execution-policy.md
- life-cycle/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/01-first-job-foundation/07-raw-to-load-normalization-seam.md
- life-cycle/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/01-first-job-foundation/08-first-job-design-input.md
- life-cycle/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/01-first-job-foundation/09-first-job-design-v1.md
- life-cycle/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/01-first-job-foundation/10-foundation-summary.md
- life-cycle/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/01-first-job-foundation/11-raw-to-load-job-design-v1.md
- life-cycle/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/01-first-job-foundation/12-missing-relational-load-mappings.md
- life-cycle/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/01-first-job-foundation/13-load-to-redshift-staging-job-design-v1.md
- life-cycle/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/01-first-job-foundation/14-staging-to-curated-job-design-v1.md
- life-cycle/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/01-first-job-foundation/15-end-to-end-pipeline-summary.md
- life-cycle/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/01-first-job-foundation/index.md
- life-cycle/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/adapter-architecture-poc-simple.md
- life-cycle/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/adapter-architecture.md
- life-cycle/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/facade-implementation-plan.md
- life-cycle/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/facade-streaming-implementation-plan.md
- life-cycle/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/facade-streaming-review-fix-plan.md
- life-cycle/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/first-etl-job-proposal.md
- life-cycle/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/index.md
- life-cycle/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/integration-flow.md
- life-cycle/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/poc-checklist.md
- life-cycle/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/relational-load-staging-implementation-plan.md
- life-cycle/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/source-task.md
- life-cycle/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/staging-to-curated-mapping.md
- life-cycle/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/technical-integration-notes.md
- life-cycle/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/xml-to-parquet-implementation-plan.md
- life-cycle/etl/docs/features/ETL/epics/06-source-adapter-brink-pos-api/xml-to-parquet-proposal.md
- life-cycle/etl/docs/features/ETL/index.md
- life-cycle/implementation-specs/specs/BrinkPosOrdersFirstEtlJob/TASK.md
- life-cycle/implementation-specs/specs/BrinkPosOrdersFirstEtlJob/TASK0.md
- life-cycle/implementation-specs/specs/BrinkPosOrdersFirstEtlJob/TASK1.md
- life-cycle/implementation-specs/specs/BrinkPosOrdersFirstEtlJob/TASK2.1.md
- life-cycle/implementation-specs/specs/BrinkPosOrdersFirstEtlJob/TASK2.2.md
- life-cycle/implementation-specs/specs/BrinkPosOrdersFirstEtlJob/TASK2.3.md
- life-cycle/implementation-specs/specs/BrinkPosOrdersFirstEtlJob/TASK2.4.md
- life-cycle/implementation-specs/specs/BrinkPosOrdersFirstEtlJob/TASK2.md
- life-cycle/implementation-specs/specs/BrinkPosOrdersFirstEtlJob/TASK3.1.md
- life-cycle/implementation-specs/specs/BrinkPosOrdersFirstEtlJob/TASK3.2.md
- life-cycle/implementation-specs/specs/BrinkPosOrdersFirstEtlJob/TASK3.3.md
- life-cycle/implementation-specs/specs/BrinkPosOrdersFirstEtlJob/TASK3.4.md
- life-cycle/implementation-specs/specs/BrinkPosOrdersFirstEtlJob/TASK3.md
- life-cycle/implementation-specs/specs/BrinkPosOrdersFirstEtlJob/TASK4.md
- life-cycle/implementation-specs/specs/BrinkPosOrdersFirstEtlJob/TASK5.md
- life-cycle/implementation-specs/specs/BrinkPosOrdersFirstEtlJob/TASK6.md
- life-cycle/implementation-specs/specs/BrinkPosOrdersFirstEtlJob/TASK7.md
- life-cycle/implementation-specs/specs/BrinkPosOrdersFirstEtlJob/TASK8.md
- life-cycle/research/temp/brink-pos-integration-research.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/customers.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/index.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/inventory_items.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/kitchen_item_status_events.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/kitchen_orders.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/kitchen_order_items.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/loyalty_customers.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/pos_catalog_items.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/pos_hourly_sales.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/pos_menu_items.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/pos_modifiers.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/pos_orders.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/pos_order_items.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/pos_tables.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/pos_table_definitions.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/pos_tenders.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/pos_transactions.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/pos_transaction_items.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-curated-model-mapps/pos_transaction_tenders.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_kitchen_get_order_bump_times.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_kitchen_get_order_item_bump_times.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_sales2_get_current_business_date.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_sales2_get_orders.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_settings2_get_brands.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_settings2_get_destinations.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_settings2_get_employees.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_settings2_get_items.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_settings2_get_kitchen_queues.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_settings2_get_last_modified_time.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_settings2_get_menu.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_settings2_get_tables.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_settings2_get_taxes.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_settings_get_day_parts.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_settings_get_item_groups.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_settings_get_modifier_codes.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_settings_get_modifier_groups.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_settings_get_registers.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_settings_get_revenue_centers.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_settings_get_sections.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/brink_settings_get_tenders.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/brinkPos-staging-model/index.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/curated-model/customers.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/curated-model/index.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/curated-model/inventory_items.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/curated-model/kitchen_item_status_events.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/curated-model/kitchen_orders.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/curated-model/kitchen_order_items.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/curated-model/loyalty_customers.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/curated-model/pos_catalog_items.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/curated-model/pos_hourly_sales.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/curated-model/pos_menu_items.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/curated-model/pos_modifiers.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/curated-model/pos_orders.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/curated-model/pos_order_items.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/curated-model/pos_tables.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/curated-model/pos_table_definitions.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/curated-model/pos_tenders.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/curated-model/pos_transactions.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/curated-model/pos_transaction_items.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/curated-model/pos_transaction_tenders.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/curated-model/todo.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/index.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/logic-control-aloha-staging-model/aloha_gnditem.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/logic-control-aloha-staging-model/aloha_gndsale.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/logic-control-aloha-staging-model/aloha_gndslsum.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/logic-control-aloha-staging-model/aloha_gndtndr.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/logic-control-aloha-staging-model/aloha_itm.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/logic-control-aloha-staging-model/aloha_mod.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/logic-control-aloha-staging-model/aloha_tab.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/logic-control-aloha-staging-model/aloha_tabdef.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/logic-control-aloha-staging-model/aloha_tdr.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/logic-control-aloha-staging-model/index.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/logic-control-kds-staging-model/index.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/logic-control-kds-staging-model/kds_customers.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/logic-control-kds-staging-model/kds_items.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/logic-control-kds-staging-model/kds_item_bumps.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/logic-control-kds-staging-model/kds_orders.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/logic-control-pos-staging-model/index.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/logic-control-pos-staging-model/labpos_inventory_items.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/logic-control-pos-staging-model/labpos_wp_loyalty.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/logic-control-pos-staging-model/labpos_wp_pos_items.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/logic-control-pos-staging-model/labpos_wp_pos_orders.md
- life-cycle/warehouse-model/docs/features/ETL/warehouse-data/logic-control-pos-staging-model/labpos_wp_pos_order_items.md
- tenat-admin/architecture/docs/features/tenant-admin-control-plane/api-contract.md
- tenat-admin/architecture/docs/features/tenant-admin-control-plane/data-model.md
- tenat-admin/architecture/docs/features/tenant-admin-control-plane/feature-proposal.md
- tenat-admin/architecture/docs/features/tenant-admin-control-plane/implementation-notes.md
- tenat-admin/architecture/docs/features/tenant-admin-control-plane/index.md
Brink POS Integration Flow
Purpose
Describe the execution flow of the Brink POS ETL adapter on top of the general ETL lifecycle from ../../../../ETL.md.
This document answers:
- what happens on each scheduled run
- in what order Brink streams should run
- what is written to S3,
staging, andcurated - when checkpoints and batch metadata are updated
High-Level Flow
Recommended flow for Brink:
- Schedule starts a Brink sync job for one tenant-location and one stream.
- Worker resolves Brink connection metadata and target tenant warehouse.
- Worker reads the current checkpoint for the stream.
- Worker uses the correct Brink abstraction for the requested stream window.
- Worker saves the raw SOAP response to S3
raw/. - Worker reopens or reads the persisted raw object and validates it for SOAP fault, Brink
ResultCode, and XML validity. - Worker converts the validated raw SOAP response into a load-ready file for one
stagingtable. - Worker writes that load-ready file to S3
load/. - Worker runs Redshift
COPYfrom S3load/into the 1:1stagingtable. - Worker runs SQL transforms from
stagingto targetcuratedtables. - Worker runs Redshift
UNLOADfrom updatedcuratedtables to S3curated/as Parquet. - Worker marks the batch successful.
- Worker advances the checkpoint only after the full flow succeeds.
Important correction:
- the raw object saved from Brink is SOAP XML, not JSON
- JSON or Parquet may be used as the load-ready format for
COPY, but that is a derived file inload/, not the original raw payload
Important abstraction rule:
- use
IBrinkPosFacadefor typed control calls and smaller typed operations - use
IBrinkRawClientdedicated semantic methods or semantic request DTOs for heavy raw endpoints that need bounded-memory streaming capture - keep SOAP actions, envelope XML, and transport request objects internal to the Brink integration module
- treat
BrinkRawCallResultas transport metadata only; endpoint success requires persisted raw validation
Runtime Unit
The runtime unit should be:
- one tenant
- one Brink location
- one stream
- one batch
Do not run one giant batch that mixes orders, bumps, and settings together.
Recommended streams:
settingsordersorder-bumpsitem-bumps
Recommended Stream Order
When multiple streams are due in the same scheduler cycle, run them in this order:
settingsordersorder-bumpsitem-bumps
Why this order:
settingsrefreshes dimensions used later for enrichmentordersis the main fact source and should land before kitchen bump-derived projectionsorder-bumpsreferences ordersitem-bumpsreferences order items and is the most dependent stream
If settings is not due or GetLastModifiedTime shows no change, skip the settings payload pulls and continue with the transactional streams.
Detailed Per-Stream Flow
1. Settings Stream
Business meaning:
- this stream refreshes the current reference configuration of the location
- it is not a native Brink history stream
- each successful pull is a snapshot of "what the location configuration looks like now"
- this is why settings landing tables should be treated as per-batch snapshots, while curated settings tables should usually expose current state
Recommended sequence:
- Start
settingsbatch. - Call
IBrinkPosFacade.GetLastModifiedTimeAsync. - Save the raw SOAP XML to S3
raw/. - Load the response 1:1 into
staging.brink_settings2_get_last_modified_time. - Compare the returned watermark with the current
settings:last-modifiedcheckpoint. - If unchanged, mark the stream as successful and do not pull the remaining settings calls.
- If changed, call and land these operations through the typed facade:
Settings2.GetItemsSettings2.GetModifierGroupsSettings2.GetDestinationsSettings2.GetTablesSettings2.GetKitchenQueuesSettings2.GetTaxesSettings2.GetEmployeesSettings.GetTenders- Save each raw SOAP response to S3
raw/. - Reopen each saved raw object and validate it before treating the endpoint as successful.
- Convert each response into one load-ready file under S3
load/. COPYeach file into its matching 1:1stagingtable.- Run
staging -> curatedSQL for settings-backed curated tables. UNLOADupdated curated tables to S3curated/.- Mark batch successful.
- Advance the
settings:last-modifiedcheckpoint.
2. Orders Stream
Recommended sequence:
- Start
ordersbatch. - Resolve the current
orders:modified-timecheckpoint. - Resolve the
BusinessDateto query. - Call
IBrinkRawClientthrough a semantic orders capture API. - The raw orders capture uses
GetOrdersRequest(businessDate, ModifiedTime: null, ExcludeOpenOrders: false, PriceRollUp: "RollUp"). - The public raw API may be either:
- a dedicated method for the current slice, or
- a semantic request DTO if the orders stream later needs additional business inputs such as
ModifiedTime - Save the raw SOAP XML to S3
raw/. - Reopen the saved raw object and validate it for SOAP fault and Brink
ResultCodebefore marking the endpoint successful. - Convert the response to one load-ready file.
- Write the load-ready file to S3
load/. COPYintostaging.brink_sales2_get_orders.- Run
staging -> curatedSQL for transaction and order-based curated tables. UNLOADupdated curated tables to S3curated/.- Mark batch successful.
- Advance the
orders:modified-timecheckpoint to the highest safely processed BrinkModifiedTime.
3. Order-Bumps Stream
Recommended sequence:
- Start
order-bumpsbatch. - Resolve the current
order-bumps:bump-timecheckpoint. - Resolve the
BusinessDateto query. - Call
IBrinkRawClientthrough a semantic order-bumps capture API. - Save the raw SOAP XML to S3
raw/. - Reopen the saved raw object and validate it for SOAP fault and Brink
ResultCodebefore marking the endpoint successful. - Convert the response to one load-ready file.
- Write the load-ready file to S3
load/. COPYintostaging.brink_kitchen_get_order_bump_times.- Run the
staging -> curatedSQL dependent on order-level bump data. UNLOADupdated curated tables to S3curated/.- Mark batch successful.
- Advance the
order-bumps:bump-timecheckpoint.
4. Item-Bumps Stream
Recommended sequence:
- Start
item-bumpsbatch. - Resolve the current
item-bumps:bump-timecheckpoint. - Resolve the
BusinessDateto query. - Call
IBrinkRawClientthrough a semantic item-bumps capture API. - Save the raw SOAP XML to S3
raw/. - Reopen the saved raw object and validate it for SOAP fault and Brink
ResultCodebefore marking the endpoint successful. - Convert the response to one load-ready file.
- Write the load-ready file to S3
load/. COPYintostaging.brink_kitchen_get_order_item_bump_times.- Run the
staging -> curatedSQL dependent on item-level bump data. UNLOADupdated curated tables to S3curated/.- Mark batch successful.
- Advance the
item-bumps:bump-timecheckpoint.
S3 And Redshift Flow
For Brink, the path should be:
- raw SOAP XML to S3
raw/ - parsed load-ready file to S3
load/ COPYinto one matchingstagingtable- SQL transform into
curated UNLOADcuratedto S3curated/
Recommended file role by prefix:
raw/= original Brink SOAP XML exactly as returnedload/= load-ready file derived from the raw response for one staging tablecurated/= published Parquet exported from Redshift curated tablesfailed/= error context and replay artifacts
Checkpoint Rules
Checkpoint behavior for Brink must be strict:
- Read checkpoint before calling Brink.
- Use checkpoint to build the incremental request.
- Save raw payload before any warehouse mutation.
- Load
staging. - Transform to
curated. UNLOADcuratedto S3.- Mark batch successful.
- Only then update the checkpoint.
Rules:
- failed batch means no checkpoint advance
- downstream SQL failure means no checkpoint advance
UNLOADfailure means no checkpoint advance- preserve Brink
DateTimeOffsetwith original offset - use small overlap windows on incremental streams to reduce missed records at boundaries
Metadata Update Point
Your interpretation is correct with one important clarification: metadata should be updated at two different moments.
At batch start:
- create
IngestionBatch - store tenant, stream, source type, requested window, and initial status
During execution:
- write raw S3 path after raw response is stored
- write load S3 path after the load-ready file is created
- write row counts and timings after
COPYand transform
At successful completion:
- mark batch success
- persist final row counts and completion timestamps
- update the stream checkpoint
At failed completion:
- mark batch failed
- store error details
- do not update the checkpoint
Failure Flow
If a Brink call or downstream step fails:
- keep the raw SOAP response if it was already received
- write error details to batch metadata and logs
- optionally write failure context under S3
failed/ - leave checkpoint unchanged
- let the next scheduler run retry from the same checkpoint window
Recommended Scheduler Model
Recommended scheduler approach:
EventBridge Schedulercreates cron triggers- each trigger publishes a stream-specific job to
SQS - ECS worker consumes
SQSmessages throughAWS.MessagingAddSQSPoller(...) - each message executes one tenant-location-stream batch
- handler returns success only after full batch success
Fallback PoC option:
- one internal schedule loop in worker
BackgroundService - worker resolves which tenant-location pairs are active
- worker executes due streams directly
Recommended cadence for the PoC:
orders: most frequentorder-bumps: similar or slightly less frequent thanordersitem-bumps: similar or slightly less frequent thanorderssettings: much less frequent, gated byGetLastModifiedTime
Exact cron values should remain configurable per environment.
Decision Summary
| Decision | Recommendation |
|---|---|
| Raw storage format | save original Brink SOAP XML |
| Load format for staging | derive one load-ready file per stream/table |
| Staging granularity | one table per Brink operation / raw file type |
| Curated granularity | explode nested collections during SQL transforms |
| Batch granularity | one batch per tenant-location-stream |
| Checkpoint update | only after COPY, transform, and UNLOAD all succeed |
| Stream order | settings -> orders -> order-bumps -> item-bumps |
Related Documents
source-task.mdtechnical-integration-notes.mdpoc-checklist.md../../../../ETL.md../../../../flows/etl-ingestion.md