Live data from Hacker News

Slack’s migration to a cellular architecture

slack.engineering

61–70 of 265 posts

Re: Slack’s migration to a cellular architecture

#61
post #17
post #3

Is Slack still written in Hack/PHP?

Yes — see my recent article https://slack.engineering/hakana-taking-hack-seriously/ We use a few languages to serve client requests, but by far the biggest codebase is written in Hack, which runs inside an interpreter called HHVM that’s also used at Facebook.

Hi Matt

Thanks for Psalm!

Curious, if Slack was built today from ground up - what tech stack do you think should/would be used?

Re: Slack’s migration to a cellular architecture

#62

Is Slack dead? unironically. Does it have a future? With Teams, etc. coming out, it seems most companies do not want to go the Slack route

Teams is doing well because it's often an IT department's simplest choice, but I don't find it's great for users.

Why would I choose Slack for my employees when Teams integrates so nicely with everything else in the "stack". Teams is leaps and bounds ahead already, and Slack really lost the boat many years ago.

Speaking of which, I'm going now to buy more Microsoft shares.

Re: Slack’s migration to a cellular architecture

#63

Their siloing strategy, which I'll roughly refer as resolving a request from a single AZ, is a good way to keep operations and monitoring simple. A past team of mine managed services in a similar fashion. We had a couple (usually 2-4) single AZ clusters with a thin (Envoy) layer to balance traffic between clusters. We could detect incidents in a single cluster by comparing metrics across clusters. Mitigation was easy…

The downside of single AZ clusters is capacity. If you have a need to drastically scale up the compute might not be available in a single AZ.

Even though each cluster was single AZ the whole system wasn't, so we weren't bound by the capacity of a single AZ.

Most of the situations where we needed to drastically scale up were known ahead of time as well (e.g. campaign from customer), and we would preallocate instances or even more clusters.

I may be forcing my memory, but if I'm not mistaken, our auto scaling was setup in a way that the system could handle sudden load increases of ~50% without noticeable disruption. Spikes bigger than this could lead to increased latency and/or error rate.

Re: Slack’s migration to a cellular architecture

#64

Earlier quoted context omitted.

Usually in distributed strongly consistent and durable systems, data is not considered committed until it has been persisted in multiple replicas. So if one goes down nothing is lost, but capacity and durability is degraded.

That makes sense on its own, but doesn’t it mean that there are lots of network requests happening between silos all the time? It doesn’t seem very siloed. Or is this some lower-level service that “doesn’t count” somehow?

It's siloed that if one is down others are not affected as long as enough other replicas are healthy to keep the quorum.

You always need cross-AZ traffic, otherwise your data is single homed (which we used to call "your data doesn't exist").

Re: Slack’s migration to a cellular architecture

#65

So they run everything in AWS USE1? That doesn't seem very redundant, but then I guess if the whole of USE1 goes down Slack won't be the only service that will be affected.

But then everybody trying to recover from USE1 outage can't use Slack to coordinate the recovery ...

Re: Slack’s migration to a cellular architecture

#66

Is Slack dead? unironically. Does it have a future? With Teams, etc. coming out, it seems most companies do not want to go the Slack route

Teams is doing well because it's often an IT department's simplest choice, but I don't find it's great for users.

The company I work for has a "Hours wasted because Teams sucks" page that gets updated at least weekly.

Eventually the list will grow so large that we could probably attach a 5-figure dollar amount to it, if it hasn't already.

Re: Slack’s migration to a cellular architecture

#67
post #28

Is Slack dead? unironically. Does it have a future? With Teams, etc. coming out, it seems most companies do not want to go the Slack route

If your goal is to monitor your staff and gather metrics on their communication - Teams outdoes Slack and is incomparable. If your goal is to have a platform that enables your employees to communicate with as little friction as possible, I have yet to see anything capable of replacing Slack. Teams especially, is something I loathe using every day. Everything about the UI and UX gets in the way of what I’m trying to d…

Agreed. Teams is already the most painful experience, and it's about to get even worse with the new 2.0 version being deployed.

Re: Slack’s migration to a cellular architecture

#68

I appreciate the clear explanation of the problem and the solution, which (as is so often the case) seems fairly simple or obvious in retrospect. Semi-related tangent: sometime around mid-2016, I came across a tool that helped visualize requests in near real-time, and showed what it "looks" like (ie, flow slows to trickle in service A during draining, while it ramps up in service B)... there was a really compelling d…

Vizceral

Re: Slack’s migration to a cellular architecture

#70
post #49

So they run everything in AWS USE1? That doesn't seem very redundant, but then I guess if the whole of USE1 goes down Slack won't be the only service that will be affected.

AWS also uses Slack internally, so add that to the list of shit that can hit the fan if us-east-1/IAD goes down.

Don’t they also use Chime? It wouldn’t be a single point of failure.
Post reply on HN