使用TypeScript和nextjs實現基於CQRS的微服務的銀行API原始碼

banq發表於2022-05-09

基於領域驅動設計、CQRS 和事件溯源的簡單銀行 API:
寫了一個由兩個微服務和一個 API 閘道器組成的銀行賬戶 API 。我用 TypeScript 和 NestJS 實現了微服務。但是,使用Go編寫 API 閘道器。
在這個專案中無縫地結合了 DDD、CQRS 和事件溯源。由於 NestJS 沒有官方的事件溯源模組,我自己編寫了一個並在 NPM 上提供。最好別用。它沒有經過現場測試。

技術特點
  • 領域驅動設計、CQRS 和事件溯源相結合
  • NestJS 微服務作為 Monorepo,分為命令和查詢
  • Go 中的 API 閘道器(HTTP 到 gRPC)
  • 在 NestJS 生態系統中為 Event-Sourcing 建立了一個 NPM 包
  • 使用 Kafka 作為非同步事件流
  • 使用 gRPC 作為同步傳輸協議
  • 每個服務模式的資料庫
  • 由於最終一致性而確保冪等性
  • 使用 MongoDB 作為寫入資料庫的 NoSQL 方法(事件溯源)
  • 使用 PostgreSQL 作為讀取資料庫的 SQL 方法
  • 將 Proto 檔案儲存在共享儲存庫中
  • 除了應用程式,一切都被 docker 化了
  • Sagas 的簡化用法


程式碼庫


 

相關文章