- Domain Driven Design
- Quality Attributes
-
Quality Attributes – Habit Tracking RPG
1. Edge Service
- In caso di errore interno, deve restituire una risposta HTTP valida (4xx/5xx) entro 2 secondi.
- Il tempo medio di risposta per login/registrazione deve essere ≤ 500 ms.
- Il 95% delle richieste deve completarsi entro 1 secondo.
2. Tracking Service
- Creazione o aggiornamento di un habit ≤ 500 ms nel 95% dei casi.
- Recupero lista habit utente ≤ 700 ms nel 95% dei casi.
- Dopo il completamento di un habit, lo stato aggiornato deve essere visibile entro 1 secondo.
- Nessuna duplicazione di habit per lo stesso utente con stesso nome.
- In caso di errore database, il sistema non deve perdere dati già confermati.
3. Avatar
- Un oggetto non può avere quantità negativa.
- Ogni operazione di aggiunta/rimozione deve essere atomica.
- Recupero inventario utente ≤ 500 ms nel 95% dei casi.
- Aggiornamento quantità oggetto ≤ 500 ms nel 95% dei casi.
- Dopo una modifica, il nuovo stato dell’inventario deve essere coerente in tutte le chiamate successive.
4. Marketplace Service
- Acquisto o vendita oggetto ≤ 700 ms nel 95% dei casi.
- Recupero lista oggetti nel negozio ≤ 500 ms.
- In una vendita: valuta aumentata e oggetto rimosso devono avvenire nella stessa transazione.
- Se una delle due operazioni fallisce, nessuna modifica deve essere applicata.
- Non è possibile vendere un oggetto non presente nell’inventario.
- Il saldo utente non può diventare negativo dopo un acquisto.
5. Tracking Service
- Calcolo ricompensa XP ≤ 500 ms.
- Aggiornamento livello utente ≤ 500 ms nel 95% dei casi.
- Nessuna doppia assegnazione di XP per lo stesso evento.
- Gli eventi già processati non devono essere rielaborati.
6. Notification Service
- Creazione notifica ≤ 300 ms.
- Invio notifica asincrona entro 5 secondi dalla generazione.
- In caso di fallimento invio, deve essere previsto almeno 1 tentativo di retry.
- Le notifiche fallite devono essere loggate.