Earlier quoted context omitted.
I use Zulip for the day to day (it's amazing, I can't recommend it enough), but sometimes use Slack because some open source communities use it, and I'm always amazed at how damn slow it is. I can consistently out-type it, it's terrible. I guess it was great when it started out, but they're slowly boiling the frog, who is us.
Zulip won my last bake-off for chat systems. Integration was easy and the topic method of providing threads was amazing. The only feature it was missing was federation. In the XMPP world, you could communicate with users on other XMPP instances. With Zulip, you can only communicate with local users. Do you know if this is still the case?
A terrible, horrible, no-good, very bad day at Slack
271–280 of 282 posts
Re: A terrible, horrible, no-good, very bad day at Slack
#272Earlier quoted context omitted.
I use Zulip for the day to day (it's amazing, I can't recommend it enough), but sometimes use Slack because some open source communities use it, and I'm always amazed at how damn slow it is. I can consistently out-type it, it's terrible. I guess it was great when it started out, but they're slowly boiling the frog, who is us.
Zulip won my last bake-off for chat systems. Integration was easy and the topic method of providing threads was amazing. The only feature it was missing was federation. In the XMPP world, you could communicate with users on other XMPP instances. With Zulip, you can only communicate with local users. Do you know if this is still the case?
https://github.com/zulip/python-zulip-api/tree/f47559e68dfcc...
Re: A terrible, horrible, no-good, very bad day at Slack
#273Earlier quoted context omitted.
I use Zulip for the day to day (it's amazing, I can't recommend it enough), but sometimes use Slack because some open source communities use it, and I'm always amazed at how damn slow it is. I can consistently out-type it, it's terrible. I guess it was great when it started out, but they're slowly boiling the frog, who is us.
Zulip won my last bake-off for chat systems. Integration was easy and the topic method of providing threads was amazing. The only feature it was missing was federation. In the XMPP world, you could communicate with users on other XMPP instances. With Zulip, you can only communicate with local users. Do you know if this is still the case?
* https://zulipchat.com/integrations/communication * https://github.com/42wim/matterbridge
We'll eventually add a more native way of connecting a stream between two Zulip servers; we just want to be sure we do that right; federation done sloppily is asking for a lot of spam/abuse problems down the line.
(I'm the Zulip lead developer)
Re: A terrible, horrible, no-good, very bad day at Slack
#274TL;DR First a performance bug was caught during rollout, and rolled back within a few minutes. However this triggered their auto-scaling of web apps to ramp up to more instances than a hard limit they had. This in turn triggered a bug in how they update the list of hosts in their load balancer, causing it to not get updated with new instances, and eventually go stale. After 8 hours the only real remaining instances i…
It almost seems like no one group understands the system as a whole, so when one part fails, no one has a clear idea of the domino effects that can happen. I'm guessing this is the result of really complex systems interactions.
Re: A terrible, horrible, no-good, very bad day at Slack
#275TL;DR First a performance bug was caught during rollout, and rolled back within a few minutes. However this triggered their auto-scaling of web apps to ramp up to more instances than a hard limit they had. This in turn triggered a bug in how they update the list of hosts in their load balancer, causing it to not get updated with new instances, and eventually go stale. After 8 hours the only real remaining instances i…
1. Fill out out a change request (CR) form and print it.
2. Have it signed by your manager and the managers of every system it touched, including business owners.
3. Attend the 2x a week meeting and explain your CR. In this meeting, explain what was happening, why, who authorized it, what to do if it failed, what to do if it initially worked but failed later (e.g, on a weekend).
4. Hope your CR passes the vote.
5. Implement your roll-out plan.
This is a robust process. Where it breaks down--I felt--is when you need to fix a typo on the public-facing website that's managed by a CMS.
Re: A terrible, horrible, no-good, very bad day at Slack
#276Earlier quoted context omitted.
That's an excellent TL;DR, thank you! Postmortems should start with a summary paragraph like the above, and then go into story and full details below.
The internal Google postmortem format does require a 1-2 sentence summary. Absolutely vital for being able to learn from mistakes. No one is going to parse walls of text when browsing through post-mortems.
Re: A terrible, horrible, no-good, very bad day at Slack
#277Earlier quoted context omitted.
Which is what always happens when the company aims to build an "engineering playground" full of microservices and other moving parts without a clear technical justification and balancing the pros & cons and why I personally don't like working on such projects - it makes me feel uneasy not having a good understanding of the entire system. To be fair to Slack, at their scale, lots of moving parts might make sense, but…
I think you are drawing the wrong conclusions here... Microservices is not the boogyman here. It more likely has to do with speed of development, developer turnover and a plethora of other things that result in insufficient knowledge transfer. Microservices (like just about anything) can be implemented well or poorly. There's a reason we have sophisticated orchestration solutions like Kubernetes... it exists to tame…
Re: A terrible, horrible, no-good, very bad day at Slack
#278Earlier quoted context omitted.
Hmm I'd guess they have DNS cnames like api1.x.com and api2 and 3, 4 And then the client picks one, and if that server is offline, picks another Seems as simple as DNS based? And works with broken server(s)
Except you don't need that because you can just return all four IP addresses for one record, e.g. api.x.com
Unless there's a way to get all ip addrs in js? By custom client code that queries the DNS system?
Re: A terrible, horrible, no-good, very bad day at Slack
#279I've just been bitten by this too: The broken monitoring hadn’t been noticed partly because this system ‘just worked’ for a long time, and didn’t require any change. Any experience on how to deal with it? Who watches the watchers?
Chaos Engineering comes into play here. Deliberately break your platform to see if everything works as expected.
It seems like it would take a superhuman level of foresight to catch this scenario for chaos engineering.
Re: A terrible, horrible, no-good, very bad day at Slack
#280Earlier quoted context omitted.
Threaded comments. I tried using Discord with a group of 4 people for real job and we missed threaded comments. Also the ability to draw on screen while screen sharing. So simple yet so useful.
Interesting. I personally didn't like threads and this is the first time someone mentions them favorably.
Imagine how HackerNews, Reddit or any other discussion board would be without threading. Now, if you see a #general Slack room of a 100 person company, you'll quickly see that it would be a mess without threading. That's what happens in Discord.