Bygde Threads på bare fem måneder – teknisk gjeld fra første dag

Meta-utviklerne brukte Instagram-kodebasen som utgangspunkt for å komme raskt i mål, men angrer på noen valg.

Synes du Threads- og Instagram-appene ligner på hverandre? Ikke så rart – de er bygget på samme kodebase. 📸: NTB / AFP
Synes du Threads- og Instagram-appene ligner på hverandre? Ikke så rart – de er bygget på samme kodebase. 📸: NTB / AFP Vis mer

Da Facebook-eier Meta skulle lage X/Twitter-konkurrenten Threads, klarte utviklerteamet bak å få appen klar i løpet av bare fem måneder.

Det fikk de til ved å basere Threads på Instagrams eksisterende monolittiske arkitektur, som de så itererte videre på, skriver InfoQ og DevClass.

QCon-konferansen i London fortalte Metas utvikler Zahan Malkani om hvordan Meta på rekordtid fikk klar en X-konkurrent, etter at Meta hadde sett en forretningsmulighet da mange brukere begynte å forlate X og så etter alternativer.

Men selv om de sparte tid i starten, har valget fått konsekvenser i ettertid.

«Du akkumulerer en massiv teknisk gjeld ved å bruke en kodebase til noe nytt den ikke var designet for å brukes til.»

Instagram-backend

Malkani fortalte ifølge DevClass at Meta i januar i fjor så et mulighetsvindu som kunne forsvinne like fort som det hadde oppstått.

Det å få klar et et X-alternativ raskt var ifølge Malkani en stor utfordring, og alle snarveier for å komme raskere i mål ble diskutert. Teamet lovte ledelsen i Meta at de skulle ha noe klart innen sommeren – men da kunne de ikke bygge Threads fra bunnen av.

Siden Instagram allerede hadde mye av av funksjonaliteten de trengte, bestemte de seg for å bruke Instagram-kodebasen som utgangspunkt.

– Vi gjenbrukte Instagram for backenden. Det er bokstavelig talt bare Instagram-backenden med noe skreddersydd funksjonalitet for Threads, sa Malkani ifølge DevClass.

Også klient-appene for hver plattform er i prinsippet bare nedstrippede versjoner av Instagram-appene der de blant annet har endret litt på rekkefølgen på bilder og bildetekster.

Teknisk gjeld fra første dag

Det å basere et produkt på den tekniske plattformen til et annet produkt har som nevnt ikke vært helt problemfritt.

– Du akkumulerer en massiv teknisk gjeld ved å bruke en kodebase til noe nytt den ikke var designet for å brukes til, sa Malkani.

Instagram-stacken består blant annet av et Python-bibliotek som kalles Distillery, som håndterer det meste av forretningslogikken. Ifølge Malkani er dette antagelig den største Django-deploymenten i hele verden. Denne snakker igjen med andre tjenester, InfoQ har mer informasjon om stacken her.

Metas utviklere jobber nå med å prøve å separere Instagram- og Threads-plattformene. For eksempel trenger Threads andre datamodeller enn Instagram, og en del av forretningslogikken og backend-stacken trengs å skrives om.

Malkani angrer ikke på at de valgte å basere seg på Instagram-koden, men:

– Jeg ville gjort noen få arkitekturvalg litt annerledes og brukt mer tid på datamodellen. Kanskje det ville forsinket oss med en måned eller noe, men det ville være verdt det.