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。
相關文章
- 關於電子商務
- javaB2B2CSpringcloud電子商務平臺原始碼-RabbitMQ基礎概念JavaSpringGCCloud原始碼MQ
- Ecommerce Foundation:預計2018年德國電子商務市場達到930億歐元
- 使用JHipster構建Spring和React構建電子商務應用程式原始碼 -DEVSpringReact原始碼dev
- java B2B2C原始碼電子商務平臺Java原始碼
- 基於SpringCloud的Microservices架構實戰案例-架構拆解SpringGCCloudROS架構
- PHP 電子商務PHP
- booking-microservices:基於.Net Core的CQRS、DDD、垂直切片架構、事件溯源案例ROS架構事件
- java B2B2C Springcloud電子商務平臺原始碼JavaSpringGCCloud原始碼
- java B2B2C Springcloud電子商務平臺原始碼 -Feign之原始碼解析JavaSpringGCCloud原始碼
- .Net Core實現基於Quart.Net的任務管理
- 『Microservices & Nameko』Python 微服務實踐ROSPython微服務
- Ecommerce Foundation:2018年西班牙電子商務市場規模價值達279.6億歐元 同比增長17%
- 基於ARM的電子密碼鎖的設計密碼
- java B2B2C springmvc mybatis電子商務平臺原始碼JavaSpringMVCMyBatis原始碼
- javaB2B2CSpringcloud電子商務平臺原始碼-config修改配置JavaSpringGCCloud原始碼
- API資料介面在電子商務中的應用API
- Adjust:2021年電子商務應用報告
- 通過Dapr實現一個簡單的基於.net的微服務電商系統(二十)——Saga框架實現思路分享微服務框架
- 通過Dapr實現一個簡單的基於.net的微服務電商系統(十九)——分散式事務之Saga模式微服務分散式模式
- 通過Dapr實現一個簡單的基於.net的微服務電商系統(十五)——集中式介面文件實現微服務
- 通過Dapr實現一個簡單的基於.net的微服務電商系統(十八)——服務保護之多級快取微服務快取
- 如何使用Akka Serverless製作電子商務應用?Server
- java B2B2C springmvc mybatis電子商務平臺原始碼-------zuul閘道器實現JavaSpringMVCMyBatis原始碼Zuul
- java B2B2C Springcloud電子商務平臺原始碼------Hystrix的快取使用JavaSpringGCCloud原始碼快取
- java B2B2C原始碼電子商務平臺---大話Spring CloudJava原始碼SpringCloud
- java B2B2C Springboot電子商務平臺原始碼-Feign 基本使用JavaSpring Boot原始碼
- java B2B2C Springcloud電子商務平臺原始碼-Ribbon 基本使用JavaSpringGCCloud原始碼
- 商務部:2018中國電子商務報告
- java B2B2C原始碼電子商務平臺 -commonservice-config配置服務搭建Java原始碼
- 直播電商原始碼,簡述直播的實現原理原始碼
- 通過Dapr實現一個簡單的基於.net的微服務電商系統(十六)——dapr+sentinel中介軟體實現服務保護微服務
- IPIDEA代理IP在電子商務行業的廣泛應用Idea行業
- CleverTap:女性佔印度電子商務應用使用量的54%
- Laravel-admin 碼的電子商務後臺系統 (小白看)Laravel
- 電子商務中潛在的危機
- java B2B2C springmvc mybatis電子商務平臺原始碼-Spring Cloud SecurityJavaSpringMVCMyBatis原始碼Cloud
- java B2B2C原始碼電子商務平臺 ---搭建Eureka註冊中心Java原始碼