3 ms·
"A single Slack API request from a user (for example, loading messages in a channel) may fan out into hundreds of RPCs to service backends, each of which must c
by danielovichdk 3y ago
"A single Slack API request from a user (for example, loading messages in a channel) may fan out into hundreds of RPCs to service backends, each of which must complete to return a correct response to the user."
Not being a dick here but is this not a fairly obvious flaw?
I mean why not keep a structured "message log" of all channels of all time ?
For every write the system updates the message log.
I am guessing and making assumptions I know.
- skullone 3y agoXMMP was extensible to support all this in the early 2000s. Slack reinvented simple services in the most obtuse way. I have to use Slack and I sideline quarterback all the ways things could have been better every day.
- zx8080 3y agoXMPP Agree with this point of view. Except the Jabber/XMPP Cisco legal thing, there's just no tech answer on why on earth Slack did not use XMPP under the hood.
- alberth 3y agoWhat’s even more interesting is … WhatsApp is XMPP/ejabberd based. Slack would have known about WhatsApp architecture because it was widely talked about pre-FB acquisition (2014). And Slack was founded in 2013.
- zx8080 3y agoProbably, it's the result of schizo-histerical tech decision process happening in some companies "we need fancy tech and NOT THAT XML". Sometimes it's for OKRs and power/politics balance between departments and teams in an enterprise. "If an existing tech like XMPP is used then no serious development could be needed" fear (which is not really true). It can lead (and leads) to a huge waste of resources and overspending. But it's a bit similar to building a luxury house. Not because an owner needs it. But because he can afford it.
- namdnay 3y agoI imagine the base messages are in a single store. But then you have reactions, attachments, gifs, user profiles, and probably hundreds of custom integrations/plugins. Having worked on other messaging apps, these are usually separated because their performance/scalability requirements are different
- nijave 3y agoAlso version history (edits), threads, and links to content in other channels (sharing a message).
- philwelch 3y ago> When companies create this microservices bog and then, when any problem comes up, they say, “distributed systems are hard” it reminds me of when my toddler throws food on the floor then says, “look, big mess” https://x.com/telmudic/status/1684479894406025216 https://x.com/telmudic/status/1684479894406025216