ECommerce Microservices:基於DDD+CQRS的實用電子商務.NET原始碼
ECommerce Microservices是一個虛構的電子商務,基於不同的軟體架構和技術,如微服務架構、垂直切片架構、CQRS 模式、領域驅動設計、事件驅動架構、收件箱和發件箱模式,並使用 Postgres 寫入端和 MongoDb 讀取端等。
該專案正在進行中,隨著時間的推移將新增新功能。
專案的目標
- 帶有領域驅動設計(DDD)實現的微服務架構。
- 為每個微服務正確地分離有界上下文。
- 透過使用RabbitMQ和一些自治服務的非同步訊息代理,在受約束的上下文之間進行通訊。
- 簡單的CQRS實現和事件驅動架構,寫端使用Postgres,讀端使用MongoDB和Elastic Search。為了同步讀端和寫端,我將使用EventStore
- Projections投射或Marten Projections。我們也可以透過在服務之間傳遞一些整合事件來同步我們的讀和寫模型,以實現最終一致性。
- 實施各種型別的測試,如單元測試、整合測試和端到端測試。
- 使用收件箱模式來保證接收方微服務的訊息空閒性和精確一次的交付模式,使用收件箱模式來確保任何訊息的丟失和至少一次的交付規則。
- 使用最佳實踐和新技術以及設計模式。
- 使用事件風暴來提取資料模型和有邊界的環境(使用Miro)。
- 使用Docker-Compose、Helm和Kubernetes作為我們的部署機制,同時使用Terraform作為基礎設施的程式碼。
- 使用Istio和Service Mesh實現我們的微服務。
涉及技術庫:
- .NET 6 - .NET框架和.NET核心,包括ASP.NET和ASP.NET核心
- Npgsql Entity Framework Core Provider - Npgsql有一個Entity Framework (EF) Core Provider。它的行為與其他EF Core提供者(如SQL Server)類似,所以一般的EF Core文件也適用於此。
- FluentValidation - 流行的.NET驗證庫,用於構建強型別的驗證規則。
- Swagger & Swagger UI - 用於記錄建立在ASP.NET Core上的API的Swagger工具。
- Serilog - 具有完全結構化事件的簡單.NET日誌。
- Polly - Polly是一個.NET彈性和瞬時故障處理庫,允許開發人員以流暢和執行緒安全的方式表達策略,如重試、斷路、超時、隔板隔離和回退。
- Scrutor - Microsoft.Extensions.DependencyInjection的彙編掃描和裝飾擴充套件。
- Opentelemetry-dotnet - OpenTelemetry .NET客戶端
- DuendeSoftware IdentityServer - 用於ASP.NET Core的最靈活、最符合標準的OpenID Connect和OAuth 2.x框架。
- Hangfire - 在ASP.NET應用程式中執行即用即忘、延遲和重複性任務的簡便方法。
- EasyCaching - 開源快取庫,包含快取的基本用法和一些高階用法,可以幫助我們更容易地處理快取。
- AutoMapper - .NET中基於約定的物件-物件對映器。
- Hellang.Middleware.ProblemDetails - 用於處理.Net Core中異常的中介軟體。
- IdGen - Twitter Snowflake-alike ID generator for .Net。
相關文章
- MongoDB ODM: 用於電子商務的MongoDBMongoDB
- 關於電子商務
- 實現基於iERP的企業間電子商務(轉)
- 中型電子商務應用的配置是______
- javaB2B2CSpringcloud電子商務平臺原始碼-RabbitMQ基礎概念JavaSpringGCCloud原始碼MQ
- PHP 電子商務PHP
- java B2B2C原始碼電子商務平臺Java原始碼
- 使用JHipster構建Spring和React構建電子商務應用程式原始碼 -DEVSpringReact原始碼dev
- java B2B2C Springcloud電子商務平臺原始碼JavaSpringGCCloud原始碼
- API資料介面在電子商務中的應用API
- Oracle電子商務智慧套件Oracle套件
- 淺議商務智慧在B2C電子商務站點的應用
- 電子商務和CRM的關係
- 關於微服務雲架構構建電子商務平臺微服務架構
- java B2B2C Springcloud電子商務平臺原始碼 -Feign之原始碼解析JavaSpringGCCloud原始碼
- 如何使用Akka Serverless製作電子商務應用?Server
- 微軟電子商務應用解決方案介紹微軟
- java B2B2C springmvc mybatis電子商務平臺原始碼JavaSpringMVCMyBatis原始碼
- 基於ARM的電子密碼鎖的設計密碼
- java原始碼 b2b2c o2o 電子商務平臺Java原始碼
- 證券電子商務:用專案管理“導航”(轉)專案管理
- CleverTap:女性佔印度電子商務應用使用量的54%
- 基於SpringCloud的Microservices架構實戰案例-架構拆解SpringGCCloudROS架構
- java B2B2C springmvc mybatis電子商務平臺原始碼-------zuul閘道器實現JavaSpringMVCMyBatis原始碼Zuul
- .Net Core實現基於Quart.Net的任務管理
- java B2B2C原始碼電子商務平臺---大話Spring CloudJava原始碼SpringCloud
- javaB2B2CSpringcloud電子商務平臺原始碼-config修改配置JavaSpringGCCloud原始碼
- java B2B2C原始碼電子商務平臺 ---搭建Eureka註冊中心Java原始碼
- 微服務雲架構電子商務平臺微服務架構
- java B2B2C Springcloud電子商務平臺原始碼------Hystrix的快取使用JavaSpringGCCloud原始碼快取
- 電子商務圖片放大jqzoomOOM
- 農村電子商務三種模式模式
- 電子商務專案監理(轉)
- Mashable: 改善電子商務策略的七個技巧
- ERP與電子商務的關係(轉)
- 電子商務創業失敗的總結創業
- Klaviyo:提高電子商務收入的11種方法
- Adjust:2021年電子商務應用報告