Quale sarebbe un design pulito per un'app che memorizzasse le transazioni e restituisca una panoramica di quelle ricevute negli ultimi 60 secondi, operanti in tempo e memoria costanti (O (1))?
L'app dovrebbe esporre due endpoint, uno di loro in POST
una nuova transazione e l'altro in GET
le statistiche basate sulle transazioni degli ultimi 60 secondi. Come detto, entrambi devono essere eseguiti in O (1).
Alcune settimane fa mi è stato fornito questo requisito come parte di una sfida di codice, quindi assumiamo una piccola app in una singola macchina. Il mio approccio era il salvataggio delle transazioni sia su DB che su una cache, e avendo un'attività periodica, attivata ogni 1 ms, rimuovendo le voci più vecchie di 60 dalla cache. Quindi, scaricare le statistiche da esso era semplice. Penso che questo si traduca in O (1) per entrambi gli endpoint, ma ovviamente c'è un problema serio con questo approccio perché sono stato immediatamente respinto.