Zulip Teknisk overblik

Et dybere indblik i Zulip-platformen

Zulip's offentligt tilgængelige kode-base kan findes på løsningens GitHub side, mens den særdeles udførlige dokumentation kan findes på engelsk på deres ReadtheDocs side. På denne side giver Semaphor et mere teknisk indblik i løsningen.

Zulip's backend er primært skrevet i Python3 og benytter Django - et open source web framework til udvikling af komplekse web-applikationer. Selve web-appen er primært skrevet med JavaScript og Typescript. En simpel skitse af de største komponenter og deres indbyrdes kommunikation kan ses her:



Web-applikationen serveres af reverse proxy løsningen NGINX, som også henter alt statisk indhold - HTML, CSS og JS. Realtids "push" serveren benytter Tornado - et Python web framework hvis rolle er at holde NGINX opdateret på klient interaktion med django applikationen, fx. når en bruger skriver en besked til en anden bruger eller i en kanal. Information omkring brugere, samt beskeder, indstillinger m.m. skrives til en underliggende PostgreSQL database, som kan administreres ved brug af DB queries.

Løsningen kan håndtere alle størrelser af organisationer, fra mindre projektgrupper til flere tusinde brugere. En enkelt Zulip server kan have flere såkalde "realms", eller riger, med forskellige domænenavne som kan benyttes til opsætninger der skal håndtere mere end én organisation. Hver organisation, eller "realm" er sin egen private enhed med brugere, beskeder, grupper, kanaler og emner. Det er også muligt at opsætte private grupper på en realm, som brugere skal inviteres til før de kan deltage. Zulip kan opsættes til at integrere med jeres nuværende medarbejder-database således at der ikke behøves særskilt brugeroprettelse, fx. via LDAP eller ADFS. Kommunikation mellem klient og server er selvfølgelig krypteret via HTTPS.

Zulip gør brug af et kraftfuldt REST API til at drive web-apps og smartphone apps. Alt der kan klares i appen kan derfor også tilgås via API'et. Dette åbner muligheden for at skrive en bred række integrationer som kan kommunikere med Zulip, herunder bots som administrerer grupper, automatisk invitere brugere, sender beskeder, redigerer grupper, søger efter brugere og meget mere.

Læs mere om Zulip's arkitektur i dokumentationen.
For en sammenligning mellem Slack og Zulip, se her.