Renta
Web API .NET 9.0 per noleggi premium (auto, yacht) ed eventi con biglietti QR, pagamenti Stripe e gestione multimedia.
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.
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