Hard decisions for a sustainable platform

By @miradu
Tuesday, 6 October 2015

Recently, we announced a new design for our Tweet and follow buttons, as well as a deprecation of the Tweet count feature. We expect to ship these changes by Nov. 20, 2015. We wanted to take a moment to explain how and why we made this decision, as it reflects the kinds of engineering tradeoffs we make every day.

One of our goals is to build a predictable, dependable platform for you to build your websites, apps, and businesses. We also want to ensure that the products we build are supported by Twitter Engineering. As a result, we design for longevity in order to limit any questions about deprecating APIs. Like you, we have finite engineering resources, which requires us to make choices about which products and public APIs we invest in.

About the Tweet button
The Tweet button counts the number of Tweets that have been Tweeted with the exact URL specified in the button. This count does not reflect the impact on Twitter of conversation about your content — it doesn’t count replies, quote Tweets, variants of your URLs, nor does it reflect the fact that some people Tweeting these URLs might have many more followers than others.

The count was built in a time where the only button on the web was from Twitter. Today, it’s most commonly placed among a number of other share buttons, few of which have counts.

Additionally, the “count API” has never existed as part of our public, supported and documented API endpoints; it was only intended for use by our own web widgets. We’ve often cautioned in our developer forums that use of such undocumented endpoints shouldn’t be relied upon, as we cannot commit to supporting them.

There’s also a technical reason why this undocumented API will be removed. The mechanism by which we count Tweet shares today relies on using Cassandra. As part of our ongoing effort to consolidate and simplify the platform for supportability, we’re completing our migration away from Cassandra, in favor of Manhattan, our real-time, multi-tenant distributed database for Twitter scale. The Tweet count feature is one of the last features running on Cassandra. Like all engineering organizations, we have to make tradeoffs. The choices are to deprecate the feature, or rebuild it on a more modern tech stack. Rebuilding has its own costs, and would delay our work on other, more impactful offerings for our developer community. After talking to several of the top customers affected, we chose to not continue the feature.

We hope that this glimpse behind the scenes helps you understand the decisions we have to make every day in building, scaling, and maintaining the Twitter platform.

Update Nov. 20, 2015: As described above, we have now shipped the updated Tweet Button and removed the Tweet count endpoint. We appreciate your feedback over the past 60 days on how you have used these counts, and look forward to incorporating it as we create and improve tools to integrate Twitter content into your apps and websites.