Run: docker-compose up
".Net 5 ile Microservices" kursunda inşa ettiğimiz microservice projesi
Udemy tarzı bir projedir. Kullanıcı olarak; kurs ekleyebilir, silebilir, güncelleyebilir, sepete ekleyebilir, indirim uygulayabilir ve satın alabilirsiniz.
Servisler ve veritabanları Docker Container lar aracılığı ile ayağa kaldırılıyor. İşlemler IdentityServer Token teknolojisi ile haberleşmektedir.
Client isteklerini ilgili servislere yönlendirir. Bu yönlendirmeler için Ocelot kullanılmıştır.
Microservice'lerden almış olduğu dataları kullanıcıya gösterecek ve kullanıcı ile etkileşime geçmekten sorumlu olacak UI mikroservisimiz
Tüm projenin ortak işlemlerinin yürütülmesinden sorumludur.
Yapılan tüm işlemler için gerekli olan Kimlik Doğrulamalarının yapıldığı proje. Burada EntityFrameworkCore ve SqlServer kullanılmıştır.
Sepet işlemlerinin yapıldığı projedir. Burada Redis ve kuyruk haberleşmesi için RabbitMQ kullanılmıştır.
Kursların sahip olduğu katalog işlemlerinin yapıldığı projedir. Burada MongoDB ve kuyruk haberleşmesi için RabbitMQ kullanılmıştır.
Sepete uygulanan indirim işlemlerinin yapıldığı projedir. Burada Npgsql ve Dapper kullanılmıştır.
Sepet ödemesi işlemlerinin yapıldığı projedir. Gerçek bir işlem olmadığından isim olarak "Fake" tercih edildi. Sanki işlem yapılıyormuş gibi yazılmıştır. RabbitMQ kullanılarak başarılı olan ödemeler sipariş olarak kuyruğa eklenir.
Domain driven design (DDD) ile yazılmıştır. Ödemesi başarılı olan işlemleri sipariş olarak eklemiştik. Burada CommandConsumer veya EventConsumer lar aracılığı ile işlemleri yapıyoruz. RabbitMQ kulanılmıştır. Burada EntityFrameworkCore ve SqlServer kullanılmıştır. Ayrıca bu db işlemleri için CQRS Pattern, MediatR Kütüphanesi kullanılmıştır.
Kursa eklenen resim işlemlerini yürüten projedir. Bu proje özelinde herhangi bir sunucu veya veritabanı işlemi yapılmamıştır. Eklenen resimler local olarak tutulmuştur.
-
- Mesaj kuyruk sistemi olarak RabbitMQ kullanıyor.
- RabbitMQ ile haberleşmek için MassTransit kütüphanesini kullanıyor.
- RabbitMQ (MassTransit Library)
keywords; Docker, EntityFrameworkCore, SqlServer, Redis, Ocelot, RabbitMQ, MongoDB, Npgsql, Domain driven design, CQRS Pattern, MediatR, Dapper
iyi kodlamalar... :)