Renta

Web API .NET 9.0 per noleggi premium (auto, yacht) ed eventi con biglietti QR, pagamenti Stripe e gestione multimedia.

.NET 9 FastEndpoints EF Core PostgreSQL Stripe Cloudinary JWT Serilog

Panoramica

Backend modulare ad alte prestazioni per noleggi di lusso e gestione eventi, con inventario multi-entità per auto, yacht ed eventi, oltre a ticketing QR e flussi di pagamento integrati.

Architettura

Renta.WebApi -> Renta.Application (CQRS) -> Renta.Domain -> Renta.Infrastructure. Routing FastEndpoints, FluentValidation, doppio DbContext lettura/scrittura, webhook Stripe e media con Cloudinary.

Renta.WebApi Renta.Application Renta.Domain Renta.Infrastructure PostgreSQL

Decisioni tecniche chiave

Pattern CQRS per separare operazioni di lettura e scrittura

FastEndpoints per API moderne e minimali al posto di MVC

Repository pattern per accesso ai dati testabile

Doppio DbContext per separazione read/write orientata a CQRS

FluentValidation per validazione dichiarativa delle richieste

Cloudinary come CDN multimedia scalabile

Webhook Stripe per pagamenti asincroni e idempotenti

Autenticazione JWT per sicurezza stateless basata su ruoli

Sfide

Il doppio DbContext aumenta la complessità delle migrazioni

Test dei webhook richiede CLI o ambiente di staging

Validazione ticket QR offline vs sincronizzazione real-time

Cloudinary introduce lock-in del fornitore

CQRS aggiunge overhead ma migliora performance in query

Compromessi

Complessità API monolitica vs servizi modulari

Complessità CQRS vs ottimizzazione query

Schema FluentValidation vs maggiore codice applicativo

JWT stateless vs gestione sessioni tradizionale

Lock-in Cloudinary vs benefici del media gestito

Risorse