İçeriğe geç
KS
Projelere dön

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

E-Ticaret Mikroservis Platformu için mimari diyagram

İ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.

Faydalı bir şey inşa edelim.

Düşünülmüş yazılım projeleri, backend zorlukları ve ürün odaklı mühendislik işleriyle her zaman ilgileniyorum.