Live data from Hacker News

Users may be unable to connect or experiencing degraded performance

status.slack.com

161–170 of 225 posts

Re: Users may be unable to connect or experiencing degraded performance

#161

Earlier quoted context omitted.

The concept is called 'optimistic updating' and the intent is to make the UI 'feel faster' by assuming a positive response from the back-end, and only reverting when things go awry. Given the vast majority of messaging attempts will complete successfully, it's easy to see why the interaction pattern is used. The converse is pessimistic rendering: waiting for the server response before updating the UI (and possibly sh…

> Facebook Messenger has the best UX paradigm for this I've seen FYI, Signal has used this paradigm for quite some time (I'm not sure which software predates the other on this feature), it's two checkmarks which remind me of the old "open Apple, closed Apple" keyboard keys - message bubble is shown with two open checkmarks right away, a single closed checkmark means the server has received, the second closed checkmar…

I seem to remember BlackBerry Messenger doing this 15 years ago, I don’t think Facebook or Signal were close to being first

Re: Users may be unable to connect or experiencing degraded performance

#162
post #157

Just imagine what it's like for Amazon, that just rolled out Slack internally last 1-2 months. (hint: it's not great, but at least we can fallback to Chime)

Interesting. They keep trying to push Chime on us, so I'm surprised to hear they're using Slack internally.

Was originally reported few months back: https://www.cnbc.com/2020/06/04/amazon-licenses-slack-for-wo...

Actual rollout started couple months later. Currently living in a nebulous/purgatory in-between state, most people have both Chime and Slack installed on their laptops/phones. Can't fully commit to just one or the other, yet.

Re: Users may be unable to connect or experiencing degraded performance

#163

This backend outage reveals how horrible the Slack UI is implemented. You post a message.... you think it got sent. Then 1min later, it tells you it was not.

The concept is called 'optimistic updating' and the intent is to make the UI 'feel faster' by assuming a positive response from the back-end, and only reverting when things go awry. Given the vast majority of messaging attempts will complete successfully, it's easy to see why the interaction pattern is used. The converse is pessimistic rendering: waiting for the server response before updating the UI (and possibly sh…

> The concept is called 'optimistic updating' and the intent is to make the UI 'feel faster' by assuming a positive response from the back-end, and only reverting when things go awry. Given the vast majority of messaging attempts will complete successfully, it's easy to see why the interaction pattern is used.

It's easier than making the UI and server faster for sure, I'm just not sure why engineers don't insist of fixing things the right way.

Re: Users may be unable to connect or experiencing degraded performance

#164
post #148
post #147

Earlier quoted context omitted.

Is the whole "NoSQL is better than SQL!" thing still going on?

It’s proven itself for scaling. Mostly startups don’t see the issues with SQL and don’t need to worry about it. At planet/top-Alexa-ranked-website scale though, you either use Spanner at Google, or use Cassandra at Apple, DynamoDB at Amazon, Cassandra at Instagram, parts of Facebook, Netflix, Manhattan at Twitter etc. You keep using MySQL at Github and Slack if you want periodic downtime/degradation in service tho.

The core of Facebook, Twitter, YouTube, LinkedIn, all of Microsoft and lots more all run on MySQL and other similar RDBMS servers. It's a myth that you cannot scale MySQL.

Re: Users may be unable to connect or experiencing degraded performance

#165

Earlier quoted context omitted.

The concept is called 'optimistic updating' and the intent is to make the UI 'feel faster' by assuming a positive response from the back-end, and only reverting when things go awry. Given the vast majority of messaging attempts will complete successfully, it's easy to see why the interaction pattern is used. The converse is pessimistic rendering: waiting for the server response before updating the UI (and possibly sh…

> The concept is called 'optimistic updating' and the intent is to make the UI 'feel faster' by assuming a positive response from the back-end, and only reverting when things go awry. Given the vast majority of messaging attempts will complete successfully, it's easy to see why the interaction pattern is used. It's easier than making the UI and server faster for sure, I'm just not sure why engineers don't insist of f…

Network roundtrip is still going to introduce noticeable latency even assuming everything else is literally instant.

Re: Users may be unable to connect or experiencing degraded performance

#166
post #50

Why do companies spring for slack and webex when xmpp exists and works better?

Cost. It costs money to maintain it. Example: We pay for looker. One day I thought to myself I'll spin up Metabase and try it out for myself against our prod database. It worked very well, fast and easy to query my data unlike Looker. I haven't used it in about a month and today I try to access it but the app just doesn't load. Now I need to spend time to look into why this app isn't loading. Nevermind that I have ze…

For what it may be worth, Metabase now offers a hosted version.

Re: Users may be unable to connect or experiencing degraded performance

#167
post #164
post #148

Earlier quoted context omitted.

It’s proven itself for scaling. Mostly startups don’t see the issues with SQL and don’t need to worry about it. At planet/top-Alexa-ranked-website scale though, you either use Spanner at Google, or use Cassandra at Apple, DynamoDB at Amazon, Cassandra at Instagram, parts of Facebook, Netflix, Manhattan at Twitter etc. You keep using MySQL at Github and Slack if you want periodic downtime/degradation in service tho.

The core of Facebook, Twitter, YouTube, LinkedIn, all of Microsoft and lots more all run on MySQL and other similar RDBMS servers. It's a myth that you cannot scale MySQL.

Just doesn't seem like it makes sense for any type of long-term messaging/posts/comments store.

I think you're mistaken about Twitter:

"Manhattan(the backend for Tweets, Direct Messages, Twitter accounts, and more)"

https://blog.twitter.com/engineering/en_us/topics/infrastruc...

I'm not sure about the others (e.g., there's nothing recent for YouTube I could find.. likely they'd use Spanner though for things like comments?).

I think you need a really talented database infra team if you're trying to use RDBMS for something like a real-time messaging store at scale. I can't say more about Amazon. But I just don't think it makes sense for these use cases to use RDBMS where real-time messaging (pull requests, comments, etc. for Github - messages, posts for Slack) is the 90% use case.

UPDATE. Maybe I'm wrong can you can use: https://vitess.io/ for horizontally scaling MySQL. I don't know enough about the details of it. But getting the data store right is so important to the overall backend's stability (I think it's no coincidence that Twitter stability became "solved" when they moved to something like Manhattan). And I just don't see why you wouldn't rewrite things using something that logically makes a lot more sense instead of trying to push connection pooling, query rewriting, etc. to the limit. They don't fundamentally solve what consistent hashing solves.

EDIT. Also, wrong about LinkedIn re: messaging:

https://engineering.linkedin.com/blog/2020/bootstrapping-our...

https://en.wikipedia.org/wiki/Voldemort_(distributed_data_st...

https://en.wikipedia.org/wiki/Consistent_hashing

Discord understands to use this too.[1] Not to say you can't have your user database in SQL like Facebook, etc. But for messaging? And really for anything with high throughput / low latency, where you know the access patterns, just doesn't make sense to not use something with consistent hashing.

But as mentioned in Rick's AWS videos about https://en.wikipedia.org/wiki/Technology_adoption_life_cycle - there's a lot of late majority, laggards, etc.

My original point - why I raised this to begin with - is I briefly browsed that Slack CTO's video. At one point he mentioned using RDBMS "because that's what we're experienced with." That's never a logical reason. It may be a practical one. But with time... it just doesn't stand up to ideas that are better and have proven themselves (e.g., consistent hashing). But again, using MongoDB the wrong way or assuming the "document store" is the main reason for using NoSQL can confuse people (it's one nice benefit for ad-hoc data models! but the big innovation in NoSQL is consistent hashing for the low-latency / high throughput use cases). And SQL has its benefits for certain use cases. But there's a better solve for the messaging storage at scale. I post this because: (a) I'm interested in others' opinions and feedback about how they've made RDBMS work (thanks) (b) tired of Github and Slack being down periodically, and for each mature SaaS to go through this learning curve (like with Twitter). Yo just use DynamoDB or Cassandra and save yourself the time/effort.

[1] https://blog.discord.com/how-discord-stores-billions-of-mess...

Re: Users may be unable to connect or experiencing degraded performance

#168

I have intermittently faced each of these issues over the last hour across several European and a US Slack: * Messages are shown as sent (not grey), then, after several minutes, a "Try to send again" message appears. Or the message turns grey. Or both. * The webapp randomly reloads. Sometimes already typed messages are preserved, sometimes they disappear. ( I assume a reload happens when a new version is deployed wit…

I used enterprise slack ~4 years ago for a job and I remember having these issues every so often. ~2 years ago I used free gitter for a university project and I had the same issues a lot, and we had to switch -- funnily enough, we switched to discord and it was better than all of them.

Re: Users may be unable to connect or experiencing degraded performance

#169
post #126

Earlier quoted context omitted.

It's not an implementation detail, it's a whole (controversial) UX design pattern: https://www.smashingmagazine.com/2016/11/true-lies-of-optimi...

I didn’t know it was that controversial. I feel like that article is making a bit of strawman argument from the get go by talking about 1-3% failure rate from the backend. If I had a system that flaky, I’d be taking a good hard look at myself before blaming anything on my optimistic UI :-) There are other things to consider too. Like for example network failures vs backend failures. In the case of network failures yo…

The problem with failures and optimistic UI isn't that failures happen often - it's that they're not uniformly distributed. I do not have a 1% or 0.0001% chance of experiencing failure any given message. I have 0.0001% chance of experiencing failure, unless I'm currently in a tunnel, or my ISP breaks something again, or [insert dozen other infrequent client-side failure modes], at which point my failure rate briefly hits 100%, and I'd very much appreciate if the UI didn't lie to me about it.

Re: Users may be unable to connect or experiencing degraded performance

#170
post #33

Earlier quoted context omitted.

You can tell it was built for Silicon Valley. The marginally lighter gray tone on unsent messages is only noticeable by design-aware people on fancy IPS monitors. Messages are reordered semi-randomly.

IPS monitors are not 'fancy'. Not in 2020.

This take is illustrative of just how much of a bubble HN is.

I don't mean to disparage at all, but IPS monitors are far from universal.

Post reply on HN