Attualmente sto lavorando a un progetto di un giocatore. Senza entrare nei dettagli ho due livelli principali 1. Servizi di riproduzione 2. Interfaccia utente. I servizi di riproduzione sono costituiti principalmente dal servizio Player e dal servizio browser. Comunicano tramite API REST. L'interfaccia utente si abbona a vari servizi. Voglio mantenere i servizi quanto meno stateless possibile.
Sono un po 'confuso su come mantenere i servizi senza stato. Per quanto riguarda il browser è semplice. Ottengo un percorso per navigare, recupero i risultati e li pubblicano e il servizio browser è di nuovo senza stato.
Tuttavia, non capisco come posso rendere il giocatore apolide! Prendiamo i casi d'uso concreti: varie operazioni come la riproduzione, la ripresa, la pausa ecc. Possono essere messe in atto solo se il giocatore ha un certo stato. Ad esempio, non è possibile avviare la riproduzione se prima non è stata caricata alcuna traccia. Allo stesso modo, l'interruzione ha senso se stiamo già giocando.
È responsabilità dei clienti cercare gli stati come sono iscritti al giocatore e se il giocatore non è nello stato giusto allora devono prima portarlo nello stato in cui una determinata operazione ha senso?