As per Wikipedia…Evernote is a suite of software and services designed for notetaking and archiving. A “note” can be a piece of formatted text, a full webpage or webpage excerpt, a photograph, a voice memo, or a handwritten “ink” note….
Evernote supports a number of operating system platforms (including OS X, iOS, Chrome OS, Android, Microsoft Windows, Windows Phone, BlackBerry, and webOS) and also offers online synchronisation and backup services. The diagram below illustrates Evernote support for multiple devices:
Look at this scenario. I, being an active user of Evernote, access and update same set of notes from desktop (client, Chrome browser), and mobile devices (my phone and iPad) as I access internet from one of these devices at different time of the day. And, this is, primarily, why I love using Evernote is the flexibility that it provides to the users like me to work on my same set of notes using different devices anytime, anywhere.
The important point to note is the support for both “thin” clients (like web browsers) and “thick” synchronizing clients like the ones you need to install on your desktop. With such support, the end users are empowered to install & configure Evernote client applications on different devices and manage their notes efficiently. Following are some of the key characteristics of Evernote client application:
The question, thus, arises is how does Evernote manage to support so many client applications on different OS platforms? What is the underlying integration technology?
As per Apache thrift website, The Apache Thrift software framework, for scalable cross-language services development, combines a software stack with a code generation engine to build services that work efficiently and seamlessly between C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, OCaml and Delphi and other languages. Simply speaking, Thrift is an interface definition language, a code generation tool and a set of libraries that take care of serialization and implement the transport protocol.
With Apache thrift, Evernote was able to fulfill following key application requirements:
At a very high level, different Evernote client applications invokes Evernote Service API for managing notes on the server. To achieve something similar like Evernote, all that one needs is a set of API and client and server side components generated using Thrift in following manner:
Apart from Evernote, following are some of the companies/projects that uses Thrift framework for different purposes:
So, when would one want to use framework like Apache thrift?
[adsenseyu1]
Large language models (LLMs) have fundamentally transformed our digital landscape, powering everything from chatbots and…
As Large Language Models (LLMs) evolve into autonomous agents, understanding agentic workflow design patterns has…
In today's data-driven business landscape, organizations are constantly seeking ways to harness the power of…
In this blog, you would get to know the essential mathematical topics you need to…
This blog represents a list of questions you can ask when thinking like a product…
AI agents are autonomous systems combining three core components: a reasoning engine (powered by LLM),…