Author Archives: Dave Engberg
Evernote stores hundreds of terabytes of online data in order to preserve our users’ memories. Over the last four years, 36.8 million people have created Evernote accounts, and together have uploaded more than 1.2 billion notes with more than 2 billion attachments. … Continue reading
Last week, our systems detected a sequence of login attempts to Evernote from a single web browser at IP addresses that appeared to originate from Italy. Each attempt sent a unique username and password combination. Some of these usernames were … Continue reading
Tonight, our planned 15-20 minute service window turned into a full two hour outage. We regret the problems that this may have caused for some of you and wanted to provide a little more technical detail here. As we mentioned … Continue reading
In our architectural overview post last May, we gave a high-level description of the “shard” servers we use for both data storage and application logic. Since Evernote is a personal memory service rather than a social network, we can easily … Continue reading
When we describe our overall service architecture to smart people who have been involved in other big services, the two most common questions are: Why is your structured data stored in SQL databases instead of something like [big-data, web-scale, No-SQL … Continue reading
Alex’s earlier article on Evernote’s image recognition component touched on a lot of its service-level functionality — what it is, how it works, and what it provides in relation to the Evernote platform as a whole. In this post, I’ll … Continue reading
Scenario: In the last week or two, lots of people noticed sporadic errors when they tried to synchronize with Evernote or access our web site. The errors would disappear if they manually forced another sync or reload. The web site … Continue reading
[I was originally going to go with "I Love Lucene", but did a quick Google search and found that TheServerSide beat me to it...] As we mentioned in our architectural overview post, the data from each note is spread across … Continue reading
Evernote’s servers process a lot of data for our users. At any given time, a shard may be performing different activities for different clients. For example: Constructing dynamic web pages for user accounts Performing API calls on notebooks, tags, etc. … Continue reading
When we started to plan the Evernote service in 2007, we knew that we would need to support both “thin” clients (like web browsers) and “thick” synchronizing clients on the day that we launched. This forced us us to think … Continue reading


