The document summarizes the architecture of Evernote's remote services. It describes how EDAM clients communicate with the UserStore service for user authentication and the NoteStore service to access and modify user account data. It provides a diagram showing the relationships between core data elements like users, notebooks, notes, and resources that are managed by the Evernote service.
19. EDAMs remote procedures are divided into two remote services: the UserStore
service, which is used by local applications to authenticate users, and the NoteStore,
which authorized applications use to access and change data in user accounts. EDAM
clients communicate with these two services as shown in the following diagram:
Evernote Service
Note Processing
shard n
shard 1
shard 2
(Image recognition,
etc.)
OAuth
Note User Service
Store Store Provider
EDAM API
via Thrift OAuth
protocol
Evernote for Evernote for Evernote for Third party desktop Third party web
OS X Windows Mobile application service
19
20. The following diagram shows the high-level relationships between the core data
elements managed by the Evernote service for each subscriber. This shows the major
data structures and key fields for each of those structures. The full documentation for
each structure and field is found inline within the Thrift IDL files.
1 N Notebook 1 Publishing
User
guid 1 uri
id
name publicDescription
username
updateSeqNum
privilege 1
email
N
Tag
1
shardId guid
name
1 1 updateSeqNum N N
1 parentGuid Note
guid
1
1 N 1 N title 1 NoteAttributes
content latitude
Accounting active longitude
uploadLimit updateSeqNum sourceURL
uploadLimitEnd
N 1
N
1 SavedSearch
Resource
guid
UserAttributes guid
name 1 ResourceAttributes
incomingEmail query data
referrerCode mime
1 latitude
updateSeqNum longitude
dailyEmailLimit data
recognition cameraMake
updateSeqNum fileName
The structures on the left side of the diagram (User, Accounting, UserAttributes) are
20
interchanged via the UserStore service, while the ones on the right are exchanged via