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

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.

Publisert

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.

Powered by Labrador CMS