Skip to main content
企業架構情境故事:好味餐飲從尖峰事故開始的數位轉型

Architecture Journal

EnterpriseArchitectureDigitalTransformationCaseStudy

企業架構情境故事:好味餐飲從尖峰事故開始的數位轉型

案例說明

這是一個虛構案例。所有公司名稱、人物、數字與事故皆為虛構,不代表任何真實企業。

這篇文章只定義問題背景,不預設微服務、事件驅動或其他技術解法。後續 EA 架構系列會以本文的公司輪廓、目標、角色、現況與限制作為共同前提;若案例內容變更,應同步更新案例版本與基線日期。

項目內容
案例版本0.4
基線日期2026-08-28
公司好味餐飲集團,以下簡稱「好味」

故事從一個午餐尖峰開始

好味從一家街邊餐廳起家,十二年內發展成擁有三個品牌、42 家門市的餐飲集團。 早期那套只負責門市結帳與日結的系統,也一路跟著公司長大。工程團隊陸續把會員、 優惠券、線上點餐、庫存、廚房出單、外送串接與營運報表加進去。大家仍叫它 「POS 系統」,實際上它早已是整家公司最重要的交易核心。

2026 年 5 月 8 日星期五,好味推出會員日活動。上午 11:30,行銷部向 8 萬名會員推送「午餐第二件半價」優惠。四分鐘後,建立訂單、計算優惠、查詢狀態等訂單相關請求一度升到平日午餐尖峰的七倍。

當時有三項工作同時使用正式資料庫。優惠模組會在每次結帳時讀寫優惠券使用次數; 11:30 排程的庫存批次正在更新各門市的可售數量;營運人員則開啟活動報表,直接查詢 即時銷售資料。批次更新與報表查詢使資料庫回應變慢,OneFood 內等待查詢結果的交易 持續占用資料庫連線。幾分鐘後,OneFood 的連線池耗盡,線上點餐與門市 POS 開始逾時。

現行結帳流程會依序建立待付款訂單、呼叫付款服務商、寫回付款結果,再建立廚房單。 這些步驟會分別留下紀錄,付款服務商核准交易後,OneFood 仍須更新後續狀態。 這次事故中,有些請求在付款核准後、狀態寫回前逾時;有些則已建立廚房單,卻沒有 把結帳結果回傳給顧客。顧客再次送出結帳請求時,每次重送都會取得新的請求編號, 客服與門市無法立即判斷兩次請求是否來自同一次結帳。因此,有些門市收到兩張內容 相同的廚房單,也有顧客只看到信用卡扣款,卻在 App 或官網查不到已成立的訂單。

事故從效能下降發展成全面中斷:

時間現象
11:30會員推播送出,庫存批次與活動報表查詢開始執行
11:34訂單相關請求一度達平日午餐尖峰的七倍
11:41資料庫回應時間上升,OneFood 的資料庫連線開始排隊
11:46App、官網與部分門市 POS 大量逾時,客服開始接到查詢
12:03維運人員重啟 OneFood,所有門市、App 與官網停止接單;外送平台仍可送出訂單,但 OneFood 無法正常接收
12:14OneFood 恢復服務,外送平台積壓的訂單陸續匯入,門市開始核對交易狀態

維運人員當時只能看到主機、JVM 與資料庫指標,無法判斷是哪個模組先出問題,也看不出一筆交易在訂單、付款、庫存與廚房之間走到哪一步。十一分鐘是系統完全停止服務的時間;在此之前已有十多分鐘大量逾時,恢復後也仍有訂單等待確認。

當天下午,共有 31 名財務、客服、資訊與門市人員參與處理,前後花了六個小時比對訂單、付款與廚房單。事故留下的初步數字如下:

影響數字
超過三分鐘才確認結果的訂單3,842 筆
疑似重複送出的訂單217 筆
付款成功但訂單狀態不明63 筆
出現負庫存的門市18 家
直接退款、補償與估計流失營收新臺幣 126 萬元
人工對帳與客服處理工時186 小時

表中的訂單是從效能下降到恢復後清查期間受影響的交易,不只計算十一分鐘的全面中斷;各類別也可能重疊,例如付款狀態不明的訂單也可能超過三分鐘才確認結果。

公司正面臨什麼成長壓力

公司輪廓

項目現況
門市42 家直營門市,分布於北、中、南部
品牌3 個品牌,共用會員、採購、部分菜單與中央廚房
員工約 650 人,其中資訊團隊 24 人
會員約 120 萬名註冊會員
訂單通路門市 POS、App、官網、兩家外送平台
訂單占比門市 60%、自有線上通路 22%、外送平台 18%
尖峰負載平日午餐尖峰每五分鐘約新增 300 筆訂單,產生約 1,800 次訂單相關系統請求;活動開始後,請求量一度達平日七倍
周邊系統金流、電子發票、ERP、物流、簡訊與外送平台

董事會已核准兩年成長計畫:門市從 42 家增加到 80 家,推出一個只做外帶與外送的新品牌,並開放第一批加盟店。80 家包含首批 10 家加盟店,其餘新增門市仍由好味直營。

營運團隊預估,門市增加後,尖峰流量與支援案件會同步增加。行銷團隊準備為新品牌 設計獨立的菜單、價格與活動規則;負責加盟籌備的團隊則開始盤點加盟店可查看的資料、 可執行的作業,以及總部與加盟經營者各自負責的範圍。

管理團隊開始擔心,現有系統不只可能撐不住下一次活動,還可能成為公司成長速度的上限。

老闆希望公司變成什麼樣子

事故檢討會上,執行長林若晴說:

兩年內我們要開到 80 家店,也要能快速測試新品牌。系統不能再決定公司可以長多快。午餐尖峰出問題時,更不能所有通路和門市一起停下來。

管理團隊將期待整理成五項可以被觀察的業務結果:

業務目標現況兩年內希望達成的結果
支援展店與加盟新門市設定與驗證平均需要 15 個工作天5 個工作天內完成,不必等待專屬版本上線
加快新品牌與新通路上線新品牌約需 6 個月,新通路約需 4 個月新品牌 8 週、新通路 4 週內推出第一版
降低尖峰營運風險局部異常可能拖垮全部通路未受影響的門市與通路仍可接單;結果不明的交易在 30 分鐘內查明
縮短產品試驗週期需求提出到上線通常需要 6 至 8 週一般活動與規則變更在 10 個工作天內完成驗證並上線
提高交易資訊可信度與時效每月約 320 筆交易需人工核對;營運報表隔日上午才完整人工核對降至每月 50 筆以下;營運資料在 5 分鐘內可查

財務長補上一個限制:轉型期間不能讓公司停止接單。董事會每半年檢視一次投資,下一階段預算必須說明前一階段改善了哪些業務結果,以及還有哪些風險沒有降低。

董事會沒有指定改造手段,只要求任何方案都不能中斷日常營運,而且每一筆投資都必須說明解決了哪個業務痛點,以及公司要如何確認結果真的變好了。

不同角色看到的問題

事故檢討後,各角色提出了自己的目標、困擾與顧慮。

角色主要目標現在最痛的事最擔心的轉型風險
執行長展店、新品牌與營收成長系統限制商業速度花大錢後只換技術,業務結果沒有改善
營運長門市穩定、出餐效率與標準化各通路狀態不同,門市靠電話處理例外新舊系統並存讓第一線更混亂
行銷長快速設計活動與會員經營每次優惠都要排進核心系統版本投入改造後,活動上線速度仍沒有改善
財務長對帳、退款與投資回報訂單、付款、發票資料經常需要人工核對改造期間影響結帳與稽核
門市店長正確接單、備餐與交付看不到訂單卡在哪裡,也無法自行復原網路或中央服務異常時無法營業
廚房人員按正確順序收到可製作的餐點重複單、缺料單與臨時取消干擾出餐新流程增加操作步驟
顧客快速知道價格、付款與取餐狀態逾時後不知道該等、重試還是聯絡客服不同通路的價格、點數與狀態不一致
客服與財務查到完整交易歷程並處理例外需要跨五個畫面與試算表拼出真相改造後仍無法取得一致的交易資訊
加盟經營者在授權範圍內管理門市與掌握營運狀況現有流程與權限都是依直營門市設計看不到自己的必要資料,或看到不屬於自己的會員與他店資料
資訊團隊安全地交付並快速定位事故所有改動都碰同一套程式與資料庫改造範圍超過團隊可以承擔的程度

現況:一套系統承擔整家公司

單體系統 OneFood

好味的核心系統叫做 OneFood。它原本是門市 POS 後端,現在也承接 App、官網與外送平台送入的訂單,並包含下列模組:

模組主要責任
Menu品牌、門市菜單、價格與上下架時段
Promotion優惠券、組合價、會員日與使用限制
Order購物車、訂單、取消與狀態
Payment付款請求、回呼、退款與日結
Inventory原料、餐點可售量與門市調撥
Kitchen廚房單、製作佇列與出餐狀態
Member會員、等級、點數與消費紀錄
Delivery外送平台訂單與配送狀態
Reporting營運、財務與活動報表

這些模組雖然在程式碼裡有不同套件,卻被一起建置、一起部署,也直接讀寫同一套關聯式資料庫。報表工具、批次程式與部分外部整合還會繞過應用程式,直接查詢或更新資料表。

目前的權限清單顯示,部分批次與報表帳號可以直接存取大量正式資料表。資料庫操作 紀錄保留了帳號與時間,卻沒有標示每次異動所屬的業務作業或負責單位。

flowchart LR
  Channels["POS/App/官網/外送平台"] --> Monolith["OneFood 單體應用<br/>菜單、優惠、訂單、付款、庫存、廚房、會員、外送、報表"]
  Monolith --> DB[("共用交易資料庫")]
  Reports["報表與批次作業"] --> DB
  Monolith --> Payment["金流服務商"]
  Monolith --> Invoice["電子發票"]
  Monolith --> ERP["ERP/物流"]
  Monolith --> Messaging["簡訊/推播"]

交付與營運方式

觀察面向現況
團隊分工團隊依前端、後端、資料庫與維運分工,沒有端到端負責單一業務能力的團隊。
發布方式正式版平均每六週發布一次。部署需要兩小時維護時段,失敗時通常回復整個版本。
測試方式自動化測試以單元測試為主,跨模組回歸仍由 QA 手動執行,完整回歸約需五個工作天。
變更範圍過去一年的變更紀錄顯示,一項優惠規則平均會改動六個模組。
可觀測性正式環境只有主機、JVM 與資料庫監控,沒有跨通路、模組與外部服務的交易追蹤;近半年事故的平均復原時間約為 110 分鐘。
知識集中兩位資深工程師理解優惠、訂單、付款與庫存交錯的規則,大部分緊急變更都需要其中一人參與。
外部依賴ERP、電子發票、金流與外送平台仍是未來數年要保留的外部系統,不能假設它們會一起改造。

未來希望支援的業務情境

管理團隊沒有指定系統該怎麼實作,而是描述未來希望支援的業務情境:

業務情境希望支援的能力
開設新門市營運人員能在五個工作天內完成菜單、價格、權限與設備設定,不需要等待一次專屬的系統改版。
推出新品牌或新通路團隊可以沿用既有的會員、訂單與營運能力,同時保留新品牌自己的菜單、價格與活動規則。
加盟店開始營運加盟經營者只能查看自己門市的銷售與營運資料;總部仍能執行跨品牌管理,而非履約所需的會員個人資料不會提供給加盟店。
行銷推出大型活動系統能承受短時間內快速增加的訂單;即使部分功能發生異常,仍不會讓所有門市與通路一起停止服務。
顧客完成下單無論使用 POS、App、官網或外送平台,顧客都能清楚知道訂單、付款與取餐進度,不必因畫面逾時而猜測是否要重新操作。
門市遇到異常店員能看見問題發生在哪一筆訂單、目前由誰處理,以及門市是否仍能繼續接單與出餐。
客服、營運與財務查詢交易可以看到一致且可追查的訂單歷程,不必再從多個畫面與試算表拼湊答案。
一般活動或規則需要調整改動不會牽連整套系統,團隊能在十個工作天內完成驗證並上線。

轉型期間的現實限制

限制類別必須保留的條件
營運不中斷42 家門市不能因轉型長時間停業,日常接單與出餐必須繼續。
既有設備42 家既有門市的 POS 前台軟體與設備至少還會使用三年,轉型期間仍須正常接單與出餐。
外部系統ERP、電子發票、金流與外送平台不會配合好味同時改造。
團隊規模資訊團隊只有 24 人,目前是兩個交付小組與一個平台/維運小組。
門市操作門市對系統延遲與狀態不一致的容忍度很低,不能把所有例外都丟給第一線人工判斷。
財務流程財務仍必須完成每日結帳,並說明訂單、付款、退款與發票之間的差異。
資料權限加盟經營者只能存取自己門市的資料;會員個人資料、付款資料與跨店營運資料仍由總部負責管理與稽核。

董事會每半年檢視投資、再決定下一階段預算的節奏,和先規劃、審查再執行的 Stage-Gate 做法相近;這會是後續系列討論轉型治理時的固定約束。