
Why Twitter's Engineers Hate the @replies feature - Anon84
http://www.25hoursaday.com/weblog/2009/05/15/WhyTwittersEngineersHateTheRepliesFeature.aspx
======
Tichy
It really does not make any sense to me, given that @replies were not even a
feature of twitter originally. Isn't the folk story that they only made
@replies into a link when all people started marking replies in such a way?

The way it is now (from my understanding) is that for every reply they have to
check if somebody is following the person that is being replied to. How can
this be more efficient than simply sending the reply-tweets to all followers
(which they have to do anyway with all the other tweets that are not replies)?

~~~
zimbabwe
_Isn't the folk story that they only made @replies into a link when all people
started marking replies in such a way?_

Considering they've just recently started turning #hashtags into links, I
would not at all be surprised if @replies were birthed in a similar manner.

------
nop
"What have I missed here?"

They don't have to check 1.7 million users to see if they have @replies on, if
they maintain a list with "@reply subscribers", there's little overhead as far
as I can see. If a something rarely changes but is checked a lot, it's a
pretty good idea to have it pre-calculated.

Edited: "No overhead", was a bit to absolute thanks jpwagner.

Re-Edited: Oh look there was a commenting feature on the blog, was pretty hard
to find.

~~~
Carnage4Life
That solution doesn't address my question. Caching @reply subscribers only
addresses the 3% of users who have opted-in to receiving all @replies. For the
remaining 97% whether they receive @replies from someone they are following or
not is a function of which user the reply is directed to and whether that user
is also their friend. You can't cache that, at best you can optimize how you
calculate who should receive replies.

In fact, what you've pointed out is that building an implementation to address
the 3% case is straightforward which was the point of my post.

PS: My blog does have a commenting feature. In fact there are 3 comments in
response to the post.

~~~
jpwagner
Person X member of 97%

Person Y member of 97%

Person Z member of 3%

Person W member of 3%

________________________

Person_A_@_List: X, Y, Z

Person_B_@_List: X, W

________________________

Person_A writes: @Person_B you be cool!

Received by X and Z...not Y or W

~~~
Carnage4Life
I've updated my post based on your comment above. Thanks, it was rather
helpful.

------
gojomo
First, I sympathize with the Twitter engineers who have had to build a scaling
system improvisationally under incredible growth and time constraints. I doubt
they have time to reevaluate early limiting decisions except when things are
on fire, and even then they probably only have enough time to go for the quick
fix.

Ultimately, though, I'm sure they'll figure out a way for this to work --
especially as it only requires "3%" of users to get @unacquiantanted-replies
the same way they get broadcast messages.

One approach: split accounts into two inner accounts, for example, _aplusk_
and _aplusk(all)_. Only the original name is ever publicly shown -- though the
account's public page shows the _all_ tweets, as now. However, which one
people actually 'follow' depends on their 'show all @unacquianted replies'
setting. Thus every _aplusk(all)_ tweet is handled as a broadcast, because all
those followers -- only 3% of the total -- prefer it that way.

------
varenc
"In that case I’d expect Twitter to argue that the feature they want to remove
for engineering reasons is filtering out some of the tweets you see based on
whether you are a follower of the person the message is directed to not the
other way around. "

That would be easier for the twitter engineers, but thats not what 97% of
twitter users want. The author doesn't acknowledge this.

~~~
jpwatts
Lies, damned lies, and statistics.

That 97% only indicates that most people don't change the defaults; it says
nothing about what Twitter users want.

In this case it's particularly misleading, since we're talking about an option
to turn off silent data loss. What would make someone track down a setting
related to a problem they don't know they have? A more honest representation
would be: "A small number of our users were aware that we filter @replies by
default, some were happy about it and a few (3% of total users) changed their
settings to remove the filtering."

------
SMrF
Is anyone else getting redirected from the article to rotten.com?

~~~
aardvark
All I'm getting is "service unavailable"

