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]
The combination of Retrieval-Augmented Generation (RAG) and powerful language models enables the development of sophisticated…
Have you ever wondered how to use OpenAI APIs to create custom chatbots? With advancements…
When building a Retrieval-Augmented Generation (RAG) application powered by Large Language Models (LLMs), which combine…
Last updated: 25th Jan, 2025 Have you ever wondered how to seamlessly integrate the vast…
Artificial Intelligence (AI) agents have started becoming an integral part of our lives. Imagine asking…
In the ever-evolving landscape of agentic AI workflows and applications, understanding and leveraging design patterns…