這 29 天,我不是只做 AI。我把一個事件驅動的交易系統從基礎架構、服務介面與資料一致性、佇列與撮合、市場推送一路做起,最後再把 LLM × MCP 疊上去。這篇把「全系列」做個回顧。
order.created
的下游一致性。實作上,我刻意把「能跑就好」與「能被治理」綁在一起:事件命名、參數型別、錯誤碼語意 都先講清楚,再寫程式。
order.create
;order.create
,檢查/保留額度(或庫存),成功才發 order.created
;order.created
,進入 order book 撮合,成交再發 order.matched
;eap-mcp
提供「工具 API」,eap-ai-client
做「編排與風控」。order.exchange
(Topic)order.create
→ Wallet;order.created
→ 撮合;order.matched
→ 對帳/通知{資源}.{動作}
,Queue 加 .queue
,避免語意漂移。TXNSEQ
(或等效幂等鍵)避免重複扣款。@ConfigurationProperties
收斂關鍵設定(包含 MCP 端點),啟動即做校驗;parsePlanStrict
容錯(純 JSON / ```json / 混雜文字);price/qty
去千分位、以字串處理;BUY/SELL
、商品代碼大寫;placeOrder/cancelOrder/runSimulation
缺參直接退回不執行。McpToolClient
統一呼叫入口,單一 action 失敗只影響自己;結果以 data/error
清楚回報。order.create → wallet pass → order.created → match → order.matched
全線走通。runSimulation
支援多策略混合、事件腳本、KPI 報表輸出。如果要用一句話收尾:先把系統做穩,再把 AI 疊上來。
我用事件驅動與清楚邊界打底,靠契約與測試把路鋪平,最後以 Plan/Gate/Tools 讓 AI 真正「可控地執行」。
以下是我該專案的git hub 如果有興趣都可以提出疑問或是發pr給我一起討論。
https://github.com/Yitin-tsai/eap/tree/main
會參加鐵人賽是因為我剛轉職踏入軟體行業,想要多學點東西所以參加鐵人賽給我一個很好的機會,一開始只是想要實現一個電力交易平台,後來在每周的weekly of spring 看到spring ai提出的新功能剛好我有點興趣,想要試試看串接LLM應該怎麼實作所以才有19~29天的內容,實際使用上的感想是spring透過一貫的註解式工具讓我可以簡單的將我的業務邏輯封裝成mcp工具 而且在串接各種llm模型上也做得很好,唯獨就是現在仍然是milestone版本有些功能還不太穩定且會有版本衝突需要解決期待spring官方未來發佈穩定版能更好使用。