使用TypeScript和nextjs實現基於CQRS的微服務的銀行API原始碼
基於領域驅動設計、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 的簡化用法
程式碼庫
相關文章
- 使用領域驅動設計DDD和CQRS實現身份驗證的微服務原始碼專案微服務原始碼
- 使用Akka實現CQRS/ES的原始碼原始碼
- 工商銀行基於 Dubbo 構建金融微服務架構的實踐-服務發現篇微服務架構
- 基於gRPC、API閘道器和身份驗證的Go微服務原始碼專案RPCAPIGo微服務原始碼
- 基於Java的微服務架構原始碼案例AbixenJava微服務架構原始碼
- ECommerce Microservices:基於DDD+CQRS的實用電子商務.NET原始碼ROS原始碼
- 基於JWT規範實現的認證微服務JWT微服務
- 使用Redis/RabbitMQ/EventStore實現事件溯源CQRS微服務應用 - Aram KoukiaRedisMQ事件微服務
- 基於微服務框架Micronaut和Eventuate Tram實現分散式事務的開源案例微服務框架分散式
- 使用Spring Boot和Kafka Streams實現基於SAGA模式的分散式事務原始碼教程 - PiotrSpring BootKafka模式分散式原始碼
- bunny-rest-proxy: 基於RabbitMQ的微服務非同步APIRESTMQ微服務非同步API
- TDengine在浙商銀行微服務監控中的實踐微服務
- 基於Golang的微服務——Micro實踐(一)Golang微服務
- 基於Golang的微服務——Micro實踐(二)Golang微服務
- 微服務11:熔斷、降級的Hystrix實現(附原始碼)微服務原始碼
- 基於Spring Boot和Spring Cloud實現微服務架構Spring BootCloud微服務架構
- 微服務實戰(二):使用API Gateway微服務APIGateway
- 微服務、CQRS和eventsourcing開源資源微服務
- Spring Boot實現DDD的貨運Cargo微服務案例原始碼Spring BootCargo微服務原始碼
- 基於容器雲的微服務架構實踐微服務架構
- SpareBank網路銀行實現微服務DevOps經驗分享 - Somaiah微服務devAI
- 基於事件溯源與CDC的事件驅動微服務架構案例原始碼事件微服務架構原始碼
- 基於OpenTelemetry實現Java微服務呼叫鏈跟蹤Java微服務
- 基於graphql的微服務基礎框架微服務框架
- 多執行緒在微服務API統計和健康檢查中的使用執行緒微服務API
- 教你玩轉微服務--基於DDD的微服務架構落地實踐之路微服務架構
- 網易蜂巢:基於容器和微服務迭代加速實踐微服務
- 基於MySql和Sails.js的RESTful風格的api實現MySqlAIJSRESTAPI
- 基於乾淨架構使用原始SQL和DDD實現.NET Core REST API開源案例架構SQLRESTAPI
- 基於Golang的微服務——上手篇Golang微服務
- 基於Golang的微服務——ConsulGolang微服務
- 基於.NET CORE微服務框架 -Api閘道器服務管理微服務框架API
- 基於sanic的微服務基礎架構微服務架構
- 申通的雲原生實踐之路:如何實現應用基於容器的微服務改造?微服務
- 使用Spring Boot和Kafka Streams實現CQRSSpring BootKafka
- 使用 Spark 進行微服務的實時效能分析Spark微服務
- Go 微服務:基於 RabbitMQ 和 AMQP 進行訊息傳遞Go微服務MQ
- Spring Cloud OAuth 微服務內部Token傳遞的原始碼實現解析SpringCloudOAuth微服務原始碼