Merhaba, bu proje, güçlü bir mikroservis ekosisteminin nasıl kurulabileceğini göstermektedir. Projemizde altı farklı servis ve bir API Gateway bulunmaktadır.
Genel bakış:
Mikroservisler: NotificationService PaymentService OrderService BasketService CatalogService IdentityService
API Gateway: ApiGateway, dinamik servis keşfi ve sağlık kontrolleri için Ocelot ve Consul kullanılarak yapılandırılmıştır.
Proje Özellikleri:
BasketService: Basket bilgileri Redis üzerinde kullanıcı adı key olacak şekilde tutularak bir yapı oluşturuldu.
OrderService: CQRS ve MediatR desenleri kullanılarak, sorumlulukların temiz bir şekilde ayrılması ve ölçeklenebilirliğin artırılması sağlanmıştır.
Diğer Servisler: Sadelik İçin Basit İmplementasyon: NotificationService, PaymentService, BasketService, CatalogService ve IdentityService, basit ve anlaşılır bir yapıyla implemente edilmiştir.
EventBus: Message Brokers: Güvenilir event-driven iletişim için RabbitMQ ve Azure Service Bus ile entegrasyon sağlanmıştır. InMemory Event Handling: Event-EventHandler çiftleri bellek içinde yönetilerek hızlı ve verimli olay işleme sağlanmıştır. Gerektiğinde veritabanı ile ilerlenebilir.
API Gateway: Ocelot Integration: Ocelot, gelen istekleri ilgili mikroservislere yönlendirir. Consul Integration: Servisler, başlatıldıklarında kendilerini Consul'a kaydeder. Bu yapı, dinamik servis keşfi ve sürekli health check'ler ile dayanıklı ve hata toleranslı bir yapı sağlar.
Güvenlik: Authorization: OrderService ve BasketService için authentication protokollerinden yararlanılarak yetkilendirme mekanizması kullanılmıştır.
![Screenshot 2024-05-20 131033](https://private-user-images.githubusercontent.com/89300508/332026653-586f091e-761a-49f9-9886-c1a16244707c.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjM2OTI0MzEsIm5iZiI6MTcyMzY5MjEzMSwicGF0aCI6Ii84OTMwMDUwOC8zMzIwMjY2NTMtNTg2ZjA5MWUtNzYxYS00OWY5LTk4ODYtYzFhMTYyNDQ3MDdjLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MTUlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODE1VDAzMjIxMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWYxOWVjNzZmNzExN2Q4YjdhODAzMTRhYzM2YjA0MjQ5ZGVhMmIyMTdkZTYxYjFmYTlhMjFhNGVjM2EwOTEyZTImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.w1LJvfrGkI_KZTzblc7xitYZ-Z0yXAB1jOjYAh2Z3K0)