← Projelere Dön
Yayınlandı Backend

Rating & Notification Mikroservisleri

Clean Architecture ile iki servisli mikroservis mimarisi

Bu proje, bir servis pazarı bağlamında HTTP üzerinden iletişim kuran iki bağımsız servis ile production düzeyinde bir .NET 8 mikroservis mimarisini uygulamaktadır. RatingService (port 5000), EF Core code-first migration'ları ile PostgreSQL kalıcılığı kullanan ASP.NET Core Minimal API'ler aracılığıyla servis sağlayıcılar için müşteri değerlendirmelerini yönetir ve değerlendirme olaylarını NotificationService'e (port 5001) yayınlar. NotificationService bildirimleri thread-safe in-memory veri yapılarında saklar ve kuyruk boşaltma mekanizmasıyla polling isteği başına exactly-once delivery garantisi sağlar. Her iki servis /health endpoint'leri ve OpenAPI/Swagger dokümantasyonu ile sunulmaktadır. Her servis Clean Architecture ile dört katmanda titizlikle tasarlanmıştır: Domain (entity'ler, value object'ler, domain servisler), Application (use case'ler, interface'ler, DTO'lar), Infrastructure (veri erişimi, harici servis istemcileri) ve API (input doğrulamalı Minimal API endpoint'leri). Sistem, Polly ile HTTP retry politikaları ve exponential backoff kullanarak bildirim servisi geçici olarak erişilemez olsa bile değerlendirme oluşturma akışının başarılı olmasını sağlamaktadır,değerlendirme kalıcılığının bildirim tesliminden asla engellenmediği bilinçli bir fire-and-forget pattern'i. Değerlendirme puanı 1-5 arasında doğrulanmakta, verimli ortalama hesaplamaları için service_provider_id üzerinde uygun veritabanı indeksi bulunmaktadır. Proje 46 test içermektedir,entity doğrulama, iş mantığı, use case işlevselliği ve repository davranışını kapsayan birim testler, artı in-memory veritabanı ile tam API iş akışları için entegrasyon testleri. Docker Compose tam sistemi orkestre etmektedir: başlatma ile PostgreSQL, health check'ler ile NotificationService ve otomatik veritabanı migration'ları ve dahili ağ yapılandırması ile RatingService. README, tasarım kararlarını açıklayan detaylı trade-off dokümantasyonu sunmaktadır (HTTP vs message broker, in-memory vs kalıcı depolama, exactly-once vs at-least-once delivery, senkron vs asenkron işleme),RabbitMQ/Kafka, Redis persistence, CQRS, event sourcing ve Prometheus/Grafana gözlemlenebilirliğine doğru somut bir evrim yolu ile birlikte.

Temel Özellikler

Clean Architecture ile iki bağımsız microservice (her biri 4 katman)
Polly retry + exponential backoff ile fire-and-forget bildirim deseni
Thread-safe in-memory bildirim deposuyla exactly-once delivery
domain, application, infrastructure ve API katmanlarında 46 test
Health check ve bağımlılık sıralamasıyla Docker Compose orkestrasyonu
Detaylı trade-off dokümantasyonu (HTTP vs broker, tutarlılık garantileri)
Her iki servis için OpenAPI/Swagger dokümantasyonu
GitHub Actions CI pipeline

Mimari

RatingService (.NET 8 API → EF Core → PostgreSQL) → HTTP → NotificationService (.NET 8 API → In-Memory Store) · Docker Compose · Polly Retry

Önizleme

Rating & Notification Microservices architecture diagram

Kullanılan Teknolojiler

.NET 8ASP.NET CorePostgreSQLEF CorePollyDockerxUnitSerilog