{"id":39698525,"url":"https://github.com/databricks-solutions/caspers-kitchens","last_synced_at":"2026-01-18T10:20:01.581Z","repository":{"id":316452107,"uuid":"1060345506","full_name":"databricks-solutions/caspers-kitchens","owner":"databricks-solutions","description":"🍔 A fully simulated ghost-kitchen business built on Databricks. Showcasing the end to end Data + AI story in one cohesive framework you can deploy, explore, and extend.","archived":false,"fork":false,"pushed_at":"2025-11-17T17:29:52.000Z","size":21613,"stargazers_count":39,"open_issues_count":18,"forks_count":12,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-11-17T17:31:44.339Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/databricks-solutions.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS.txt","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":"NOTICE.md","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-19T18:53:57.000Z","updated_at":"2025-11-17T17:29:56.000Z","dependencies_parsed_at":"2025-09-24T18:22:25.376Z","dependency_job_id":"c56a916e-be49-474b-91ac-0846415951b0","html_url":"https://github.com/databricks-solutions/caspers-kitchens","commit_stats":null,"previous_names":["databricks-solutions/caspers-kitchens"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/databricks-solutions/caspers-kitchens","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/databricks-solutions%2Fcaspers-kitchens","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/databricks-solutions%2Fcaspers-kitchens/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/databricks-solutions%2Fcaspers-kitchens/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/databricks-solutions%2Fcaspers-kitchens/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/databricks-solutions","download_url":"https://codeload.github.com/databricks-solutions/caspers-kitchens/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/databricks-solutions%2Fcaspers-kitchens/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28534328,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-18T10:13:46.436Z","status":"ssl_error","status_checked_at":"2026-01-18T10:13:11.045Z","response_time":98,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-18T10:20:00.809Z","updated_at":"2026-01-18T10:20:01.569Z","avatar_url":"https://github.com/databricks-solutions.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🍔 Casper's Kitchens\n\nCasper’s Kitchens is a fully Databricks-native ghost kitchen and food-delivery platform built by the Developer Relations team. It brings together every layer of the Databricks platform — Lakeflow (ingestion, Spark Declarative Pipelines), AI \u0026 BI dashboards with Genie, Agent Bricks, and Apps powered by Lakebase (Postgres) — into a single, cohesive live demo.\n\nCasper’s is more than a showcase. It’s a living playground for simulation, demos, and creative misuse — designed to push the Databricks platform past its comfort zone.\n\nEverything is built to be easy to:\n\n1. 🚀 **Deploy** — spin up the entire environment in minutes.\n2. 🎬 **Demo** — run only the stages you need, powered by live streaming data.\n3. 🧑‍💻 **Develop** — extend with new pipelines, agents, or apps effortlessly.\n\nWe build only with Databricks — by choice — so Casper’s serves as a shared sandbox for learning, experimentation, and storytelling across the platform.\n\n## Prerequisites\n\n- Databricks CLI installed on your local machine.\n- Authenticated to your Databricks workspace. (can do interactively `databricks auth login`)\n- Access to the repository containing Casper's Kitchens.\n- Permissions in the Databricks workspace to create new catalogs.\n\n## 🚀 Deploy\n\nCasper’s Kitchens uses **Databricks Asset Bundles (DABs)** for one-command deployment.\nClone this repo, then run from the root directory:\n\n```bash\ndatabricks bundle deploy -t \u003ctarget\u003e\n```\n\nEach **target** represents a different flavor of Casper’s (for example, full demo, complaints-only, free tier, etc.).\nUse whichever fits your needs:\n\n```bash\ndatabricks bundle deploy -t default     # full version: Data generation, Lakeflow, Agents, Lakebase \u0026 Apps\ndatabricks bundle deploy -t complaints  # complaints agent: Data generation, Lakeflow, Agents, Lakebase\ndatabricks bundle deploy -t free        # Databricks Free Edition: Data generation, Lakeflow\n```\n\nThis creates the main job **Casper’s Initializer**, which orchestrates the full ecosystem, and places all assets in your workspace under\n`/Workspace/Users/\u003cyour.email@databricks.com\u003e/caspers-kitchens-demo`.\n\n\u003e 💡 You can also deploy from the Databricks UI by cloning this repo as a [Git-based folder](https://docs.databricks.com/repos/) and clicking [Deploy Bundle](https://docs.databricks.com/aws/en/dev-tools/bundles/workspace-tutorial#deploy-the-bundle).\n\nFor more about how bundles and targets work, see [databricks.yml](./databricks.yml) or the [Databricks Bundles docs](https://docs.databricks.com/en/dev-tools/bundles/index.html).\n\n## 🎬 Run the Demo\n\n![](./images/stages.gif)\n\nOnce deployed, run **any** target with the same command:\n\n```bash\ndatabricks bundle run caspers\n```\n\nOptionally, specify a catalog (default: `caspersdev`):\n\n```bash\ndatabricks bundle run caspers --params \"CATALOG=mycatalog\"\n```\n\nThis spins up all the components—data generator, pipelines, agents, and apps—based on your selected target.\n\nTo clean up:\n\n```bash\ndatabricks bundle run cleanup (--params \"CATALOG=mycatalog\")\ndatabricks bundle destroy\n```\n\n\u003e 🧩 You can also run individual tasks or stages directly in the Databricks Jobs UI for finer control.\n\n## 📊 Generated Event Types\n\nThe data generator produces the following realistic events for each order in the Volume `caspers.simulator.events`:\n\n| Event | Description | Data Included |\n|-------|-------------|---------------|\n| `order_created` | Customer places order | Customer location (lat/lon), delivery address, ordered items with quantities |\n| `gk_started` | Kitchen begins preparing food | Timestamp when prep begins |\n| `gk_finished` | Kitchen completes food preparation | Timestamp when food is ready |\n| `gk_ready` | Order ready for pickup | Timestamp when driver can collect |\n| `driver_arrived` | Driver arrives at kitchen | Timestamp of driver arrival |\n| `driver_picked_up` | Driver collects order | Full GPS route to customer, estimated delivery time |\n| `driver_ping` | Driver location updates during delivery | Current GPS coordinates, delivery progress percentage |\n| `delivered` | Order delivered to customer | Final delivery location coordinates |\n\nEach event includes order ID, sequence number, timestamp, and location context. The system models realistic timing between events based on configurable service times, kitchen capacity, and real road network routing via OpenStreetMap data.\n\n## 🎯 Use Cases\n\n- **📚 Learning Databricks**: Complete end-to-end platform experience\n- **🎓 Teaching**: Consistent narrative across different Databricks features  \n- **🧪 CUJ Testing**: Run critical user journeys in realistic environment\n- **🎨 UX Prototyping**: Fully loaded platform for design iteration\n- **🎬 Demo Creation**: Unified narrative for new feature demonstrations\n\n## Check out the [Casper's Kitchens Blog](https://databricks-solutions.github.io/caspers-kitchens/)!\n\n## License\n\n© 2025 Databricks, Inc. All rights reserved. The source in this notebook is provided subject to the Databricks License [https://databricks.com/db-license-source]. All included or referenced third party libraries are subject to the licenses set forth below.\n\n| library                                | description             | license    | source                                              |\n|----------------------------------------|-------------------------|------------|-----------------------------------------------------|\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdatabricks-solutions%2Fcaspers-kitchens","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdatabricks-solutions%2Fcaspers-kitchens","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdatabricks-solutions%2Fcaspers-kitchens/lists"}