Hey Developers! A while ago we let you know about the new Tweet ID generation service we developed called Snowflake and published the source code so you could get familiar with how it works. Today, we're announcing that at 10am PDT on Tuesday September 21st, 2010 Snowflake will be in use on our production systems and that status IDs will no longer be sequential.
Snowflake still uses 64-bit unsigned integers but instead of being sequential they will instead be based on time and composed of: a timestamp, a worker number and a sequence number. For the majority of you this change will go unnoticed and your applications will continue to function without the need for any changes. In addition the API is ready for Snowflake and parameters such as max_id and since_id will work as expected. Snowflake does mean Tweet IDs will no longer be useful for data analysis, and things like counting Tweets by subtracting status IDs will not be possible. We listened when you told us about sorting Tweets by ID and knew that we needed to keep the ID roughly sortable. With Snowflake if two Tweets are posted within 1 second of each other they will be within a second of each other in the ID space too. This means although Tweets will no longer be sorted, they will be k-sorted to approximately 1 second. The key points: * Status IDs will be unique * Status IDs will continue to increase - Tweets created later in the day will have a higher ID that those created in the morning * Order will be maintained for Tweets allowing you to sort by Status ID. The accuracy of the sort will be to approximately 1 second, meaning Tweets created within a second of each other have no order. * All existing API methods will continue to work the same as before * Previous status IDs will be unchanged * There will be a noticeable jump in the numerical value of status IDs when we change. You can read more about Snowflake on the Twitter Engineering blog: http://bit.ly/announcing-snowflake Best Matt Harris Developer Advocate, Twitter http://twitter.com/themattharris
