本系列將以打造一個模擬「電力交易所」的後端系統為主題,完整呈現如何利用 Spring Boot 建構事件驅動的微服務架構。平台核心功能包含掛單 API、資產鎖定、撮合引擎與結算流程,並透過 RabbitMQ 進行服務間的事件傳遞,Redis 作為撮合訂單簿,確保高併發下的效率與一致性。系列文章將依序介紹 API 設計、事件契約測試、訂單狀態追蹤、撮合邏輯以及多節點一致性等議題,並加入 eap-mcp 模組讓 LLM 進行市場模擬,展現如何結合新技術進行實務驗證。透過此專案,不僅能掌握 Spring Boot 與相關生態系的整合,也能體驗高併發系統設計的挑戰與解法。
這個系列將分享我在打造一個模擬「電力交易所(EAP: Electricity Auction Platform)」的後端系統時所選擇的技術與設計思維。靈感來自我...
API 是模組溝通的基礎,因此我採用 API-first 的開發流程,也就是先設計好完整的 OpenAPI 文件,再透過工具生成程式碼與測試契約。這樣不僅讓不同...
在這篇文章中,我將分享我如何在 order-service 中設定 RabbitMQ,並在使用者掛買單時,發送一筆 OrderCreateEvent 到指定的佇...
在上一篇中,我介紹了如何在 Order Service 發送一筆 OrderCreateEvent 到 RabbitMQ。本篇要延續這條事件流,帶你看看我如何在...
在交易系統裡,一筆訂單成立的關鍵步驟是 Wallet 的資產核定。這裡我選擇使用 事件驅動 的方式完成核定,而不是讓 Order Service 直接呼叫 Wa...
在前幾篇中,我實作了 CreateOrderListener,當收到 OrderCreateEvent 後會驗證錢包餘額、進行資產鎖定,最後發送一筆 Order...
這一篇把前幾天的 API 契約與RabbitMQ Producer 串起來,完整走一遍:POST /bid/buy(REST) → 組事件 OrderCreat...
1. 現行組態(最小可行) • Exchange:order.exchange(Topic)• Queue:order.create.queue(接 order...
Wallet 是這條事件流的「核定關」。本篇把 Listener 的行為逐段拆解,說清楚 BUY / SELL 的條件與凍結欄位。 1.Listener 的輸入...
今天專講 OrderCreatedEvent 本人:它為什麼是「可撮合」的門票?怎麼保證它送得正確? 1.欄位與語意 在 Wallet 端用 builder 把...