Backend / Mikroservisler
E-Ticaret Mikroservis Platformu
Asenkron mesajlaşma, önbellekleme, gateway yönlendirme ve servis başına veritabanı mimarisine sahip bir .NET mikroservis e-ticaret sistemi.
- ASP.NET Core 9
- CQRS
- MediatR
- Entity Framework Core
- PostgreSQL
- RabbitMQ
- MassTransit
- gRPC
- Redis
- YARP
- FluentValidation
- AutoMapper
- Docker
- Docker Compose
Mimari özet
// net veri akışı
İstemciler
YARP API Gateway
Servis A
Servis B
Servis C
PostgreSQL
Redis
RabbitMQ
Genel bakış
Bu sistem ticaret iş akışlarını bağımsız dağıtılan .NET servislerine ayırıyor. YARP gateway kamuya açık giriş noktası, PostgreSQL her serviste izole, Redis cache-aside okumaları karşılıyor, RabbitMQ ve gRPC ise asenkron ve senkron iletişimi yönetiyor.
Teknoloji yığını
- ASP.NET Core 9
- CQRS
- MediatR
- Entity Framework Core
- PostgreSQL
- RabbitMQ
- MassTransit
- gRPC
- Redis
- YARP
- FluentValidation
- AutoMapper
- Docker
- Docker Compose
Teknik uygulama
- Mikroservis mimarisi.
- PostgreSQL ile servis başına veritabanı yaklaşımı.
- RabbitMQ + MassTransit ile olay tabanlı asenkron mesajlaşma.
- Senkron servis iletişimi için gRPC.
- Redis ile Cache-Aside stratejisi.
- YARP API Gateway.
- FluentValidation.
- AutoMapper.
- Global hata yönetimi.
- Docker ve Docker Compose ile konteynerize servisler.
Temel mühendislik kararları
- Şema ve dağıtım döngülerinin bağımsız kalması için her servise kendi PostgreSQL veritabanını vermek.
- Asenkron tamamlanabilecek işler için RabbitMQ üzerinde MassTransit, anlık yanıt gereken istekler için gRPC kullanmak.
- İstemcilerin tek tek servis host'larıyla değil tek bir gateway ile konuşması için servislerin önüne YARP koymak.
- Önbelleği kaynak gerçek olarak görmeden, okuma yoğun yollarda Redis ile cache-aside uygulamak.
- Yerel ve canlı topolojilerin yakın kalması için yığını Docker Compose ile konteynerize etmek.