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