iterate / mikrobloggeriet

0 stars 0 forks source link

Persistent cache mellom server-restarts #55

Open teodorlu opened 6 months ago

teodorlu commented 6 months ago

Problem: cache er ikke persistent mellom server-restarts

I dag bruker vi en i minne-cache for dokument-HTML:

https://github.com/iterate/mikrobloggeriet/blob/a73bb7a375f503826db91386e80cb2bc1d14f9e8/src/mikrobloggeriet/serve.clj#L60-L65

Det fører til at første last etter hver restart er treg (x 2 replikaer).

Løsningsforslag

Iterapp/HOPS kan lett gi oss en persistent Postgres. Jeg har nylig hatt svært god erfaring med postgres-klienten igrishaev/pg, har lyst til å prøve den.

Til lokal utvikling kan vi fortsette å støtte lokal in-memory cache. Men hvis en Postgres connection string er satt, kan vi bruke den.

Gotchas

Hvis vi trår feil med cache-invalidering og cache-keys, kan vi lage oss problemer. Feks hvis vi oppdaterer Pandoc, og fortsetter å servere HTML laget av gammel Pandoc. Vi må tenke gjennom hvilken cache key vi ønsker.