MangaSokağı: Tip-Güvenli NestJS & Prisma Backend Mimarisi
MangaSokağı e-ticaret platformunun çekirdek işlem motoru olarak görev yapan, bağımlılık enjeksiyonu (DI) ve uçtan uca tip güvenliği (end-to-end type safety) üzerine inşa edilmiş modüler NestJS REST API'si.
Teknoloji yığını
- Diller
- Çatılar & kütüphaneler
Performans & metrikler
- NestJS Dependency Injection (DI) mekanizması ile sınıf (class) örneklemelerinin Singleton olarak yönetilmesi sayesinde bellek tahsisi (memory allocation) optimizasyonu
- Prisma motoru (Query Engine) üzerinden optimize edilmiş veritabanı bağlantı havuzu (connection pooling) yönetimi
- İş mantığının senkron kontroller dışına çıkartılarak asenkron Service katmanına devredilmesiyle artan I/O bant genişliği
Neden geliştirdim?
Esnek tipli (loosely-typed) ve mimari disiplinden yoksun standart Node.js/Express backend'leri karmaşık e-ticaret domainlerinde spagetti koda dönüşmeye meyillidir. MangaSokağı'nın işlem hacmini ve veri bütünlüğünü yönetebilmek için, kontrolcüleri (controllers) iş mantığından (business logic) kesin bir şekilde ayıran, katı tip denetimine sahip ve ölçeklenebilir bir kurumsal API katmanı kurmam gerekiyordu.
Mimari & kararlar
Sistem, NestJS'in modüler yapısına dayanır (admin, auth, category, manga, user). Güvenlik katmanı, request yaşam döngüsüne (lifecycle) interceptor olarak dahil olan auth.guard.ts üzerinden yürütülen JWT tabanlı Role-Based Access Control (RBAC) ile sağlanır. Veritabanı erişimi prisma.service.ts aracılığıyla yönetilir. Prisma'nın AST tabanlı oluşturduğu (generated/prisma) tipler sayesinde, veritabanı şemasından HTTP yanıtlarına (response) kadar %100 tip güvenliği garanti edilir. Dağıtım izolasyonu (deployment isolation) için bağımsız Dockerfile konfigürasyonları uygulanmıştır.
Temel özellikler
- 01Controller ve Business Logic katmanlarının katı mimari ayrımı (Separation of Concerns)
- 02
auth.guard.tsüzerinden yürütülen, endpoint seviyesinde JWT tabanlı RBAC (Role-Based Access Control) - 03Prisma ORM ile otomatik oluşturulan (auto-generated) ve derleme zamanı (compile-time) hata yakalayan tip-güvenli veritabanı istemcisi
- 04İzole edilmiş ortam başlatma (environment initialization) ve testler için deterministik Seed modülü
- 05Taşınabilir (portable) mikroservis dağıtımı için optimize edilmiş Docker konteynerizasyonu
Teknik değerlendirme
Bu proje, yüksek trafikli e-ticaret platformları için tasarlanmış kurumsal bir backend yapısını temsil eder. AuthGuard gibi interceptor tabanlı güvenlik önlemleri, yetkisiz erişimleri (unauthorized payload) controller katmanına ulaşmadan bellek seviyesinde düşürür (drop). Prisma'nın oluşturduğu native istemci (generated client), manuel yazılan DTO'lardaki insan hatalarını yok eder ve geliştirme sürecindeki veritabanı refactor işlemlerinin ön yüzü (frontend) kırmasını engelleyen mutlak bir sözleşme (contract) görevi görür.