clojure-norway 2026-05-20

🍛 Clojurelønsj på Jaipur i Oslo i dag kl. 12 🍛

vi gjør "CQRS FC/IS". Det vil si at functional core får lov til å koble seg til databasen og gjøre reads. Imperative shell håndterer commands. Vi må ikke først gjøre alle reads i imperative shell og så sende inn data til functional core. Er dette et kjent mønster? Andre her som følger noe lignende?

Gjør lignende som dette ja, men med datomic og gir da en db verdi til FC. Så selv om spørringer mot db fører til IO-kall, så er det deterministisk, tilstandsløst, og på den måten logisk "rent" på tross av at det skjer IO der.

Tenker at hvis man gjør spørringer som er tilstandsavhengig i FC, så er det ikke 100% FC. Man må jo ikke alltid være helt purist heller, men man kan miste noen av fordelene med en helt "ren" FC, som f.eks. at enhetstesting av tilstandsløse funksjoner er mye enklere.

nei nettopp, det er ikke en "pure functional core" ihvertfall, men man kan vel si den er "functional" på et eller annet vis

I matematisk terminologi har du skilt unna alle effektene (når du påvirker verden), men beholdt én koeffekt (når verden påvirker deg), "les fra databasen".

en funksjon som opererer på flytende database-tilstand er jo ikke referentially transparent

Og husk lunsj i dag!