Backend Geliştirme
Açık Kaynak

MangaSokağı: Tip-Güvenli NestJS & Prisma Backend Mimarisi

TypeScriptSQLNestJSPrisma ORMPostgreSQLDockerJWTREST APIJest

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ı

TypeScriptSQLNestJSPrisma ORMPostgreSQLDockerJWTREST APIJest

Sistem Metrikleri

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

Bunu Neden İnşa Ettim?

"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

  • 01.Controller 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)
  • 03.Prisma 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ü
  • 05.Taşınabilir (portable) mikroservis dağıtımı için optimize edilmiş Docker konteynerizasyonu
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.