Mens jeg jobbet med Xcode-cache, ble noe krystallklart: dette er grunnleggende et infrastrukturproblem i et dypt fragmentert byggesystemlandskap. Vi doblet umiddelbart infrastrukturen fordi det er vollgraven vår. Men etter hvert som vi gravde dypere, ble det tydelig at infrastruktur alene ikke var nok. Vi trengte å gjøre programvare annerledes også. Selskaper har gjort dette for Bazel i årevis, så hva kan gjøre oss annerledes? Da vi så oss rundt, dukket det opp to mønstre som formet vår tenkning. For det første tar flere byggesystemer i bruk caching-funksjoner. Hastigheten og volumet vi produserer kode med fortsetter å øke, og caching er ikke lenger valgfritt. Det er viktig. For det andre er det ingen standardisering. Fragmentering av byggesystem vil uunngåelig føre til tjenestefragmentering. Én hurtigbuffertjeneste per byggesystem. Én infrastruktur per verktøy. De samme problemene ble løst om og om igjen på litt forskjellige måter. Hos Tuist kunne vi ha løst dette for Xcode og kalt det en dag. Men hva om vi bygde noe mer grunnleggende? Hva om vi skapte en smal midje mellom en verden av byggesystemer og en verden av caching-infrastruktur? Et lag som lar ethvert byggesystem snakke med en hvilken som helst caching-backend, i stedet for å bygge enda en vertikal løsning. Jeg begynte å fikle med denne ideen, og jeg er overbevist om at dette er veien videre. Vi bygger grunnlaget for å bygge systeminfrastruktur som en tjeneste. Ikke én tjeneste per byggesystem. Én løsning som fungerer på tvers av dem alle. Noe vi utvikler, vedlikeholder og tilbyr som en administrert tjeneste som alle team kan bruke uavhengig av byggeverktøy. Og ja, vi har så vidt begynt med infrastruktur. Vår visjon er å bringe det til kanten så nært som mulig der utviklere, agenter og CI-pipelines faktisk gjør jobben sin. Fragmenteringsproblemet i bransjen vår er reelt, og vi bygger infrastrukturen for å løse det.