Un posto solo dove si vede chi gioca e quando
Nel padel il problema non è prenotare un campo: è trovare le persone con cui giocare. Le partite si formano e si disfano nel giro di un'ora, e ogni informazione vecchia di dieci minuti è una partita persa.
Risultati misurati
3
piattaforme dallo stesso progetto
SSE
aggiornamenti spinti dal server
0
servizi esterni per il tempo reale
Stripe
portafoglio e pagamenti
01 — Contesto
Informazioni che invecchiano in pochi minuti
Un posto libero in una partita vale finché qualcuno non lo prende. Se l'elenco si aggiorna solo quando l'utente ricarica, due persone prenotano lo stesso posto e qualcuno resta fuori — con una telefonata di scuse da fare.
La soluzione più comune è aggiungere un servizio esterno per il tempo reale. Funziona, ma aggiunge un fornitore, un costo e un altro pezzo che può rompersi.
02 — Approccio
Il tempo reale ce l'ha già il database
Gli aggiornamenti passano da PostgreSQL: quando un dato cambia, il database avvisa l'applicazione con `LISTEN`/`NOTIFY`, e l'applicazione lo spinge ai browser collegati con un flusso di eventi. Nessun servizio in più, nessuna coda esterna.
È una scelta che funziona bene alla scala di un circolo o di una rete di circoli: meno pezzi da tenere in piedi, e il dato in tempo reale nasce dalla stessa fonte che lo conserva.
03 — Soluzione
Cosa comprende
Campi e prenotazioni
Disponibilità, fasce orarie e prenotazione, con lo stato che si aggiorna da solo.
Partite aperte
Chi cerca giocatori pubblica la partita, chi cerca una partita la trova e si aggiunge.
Portafoglio
Credito e pagamenti gestiti con Stripe, per chiudere la prenotazione senza contanti.
Accesso e archiviazione
Autenticazione ospitata in proprio e archiviazione dei file su storage a oggetti.
04 — Risultato
Meno pezzi, meno cose che si rompono
La piattaforma tiene insieme campi, partite e pagamenti su un impianto snello: un database che fa anche da canale per il tempo reale, autenticazione ospitata in proprio e nessun servizio di terze parti per gli aggiornamenti. Le app per iOS e Android nascono dallo stesso progetto.