OpenPaaS Newsletter 1 - March 2017

Laura Royet
Linagora Engineering
6 min readMar 20, 2017

--

In this first OpenPaaS newsletter, Linagora is delighted to introduce you the OpenPaaS Social Network, and the work achieved by its dedicated team distributed across France, Tunisia and Vietnam.

Born in 2013, OpenPaaS is an Open Enterprise Social Network in the cloud. As a partner of the project, Linagora has 6 feature teams working on the platform development: Inbox, James, Calendar, Social, Data Science and Administration. Each will be detailed below.

Today we are particularly excited to discuss recent OpenPaaS production rollout at Linagora.

Since mid-February, the 30 members of the OpenPaaS team has access to the service, it was the preproduction stage.

Then, on March 7th, the rollout has been launched. All Linagora employees (150 persons) use OpenPaaS by authenticating with their LDAP credentials.
Currently restricted to the use of Inbox module, OpenPaaS allows its first users to manage daily email-related tasks.

Here are some challenges encountered on the early days of OpenPaaS preproduction.

First, we had a bug in our websocket reconnection algorithm, leading to the browsers flooding the server! We quickly patched it by adding an exponential backoff algorithm and waiting for the token API response before planning the next reconnection loop.

Secondly, we had a LDAP connection leak, that made the LINAGORA OpenLDAP server crash with “too many open files” error. Once again we patched it as soon as possible.

Here we are, we worked hard for that since we started OpenPaaS, and we are so happy to share our work and use it everyday at Linagora.
In case you are discovering OpenPaaS, here are a quick tour of the main modules of the platform.

Inbox Module + James Backend

Inbox Module

With the Inbox module you can compose emails, file your messages into folders, mark messages as read, pin them, etc.

Rollout gave us positive feedbacks on this module and allowed us to open a few tickets to track detected bugs and add new interesting features.

These last days, we introduced regular emails update; Inbox queries the backend every minute.

James Team

We use our brand new Apache James as a mail server backend for OpenPaaS. We implemented Cassandra storage service to store emails and folders with a scalability model in mind.

We chose to store users’ messages and folders in a Cassandra database to validate that our scalability model works!

During the preproduction stage, James team quickly noticed 2 important points:

  • performances issues during the import of heavy mailboxes from our previous mail server.
  • too long response times on some specific IMAP and JMAP requests.

The team managed to solve these issues by modifying the way requests are done on Cassandra database. This considerably increased our James performances and so gave us a backend meeting the requirements of an efficient email server!

At the end, James team has decided to run Gatling effective load testing scenarios for JMAP and IMAP protocols on a test platform and also to improve performances tracking by setting up real time metrics on the production instance using dropwizard-metrics and Grafana. You can see here a short video demonstration.

James Grafana dashboard extract (JMAP)

To know more about James team work have a look to this article.

Calendar module aims to provide an essential tool for users to organize their schedule and share it with others. Using OpenPaaS calendar, users will easily:

  • bring their calendar on the go
  • share their schedule with others
  • set alarm so as to never forget their events
  • synchronize their own calendars (e.g., Google calendars) with the OpenPaaS one.

In its present state of development Calendar provides users with many essential features. Indeed, users can:

  • organize events and invite others to these events
  • set alarms so as to receive emails and notifications about their important events
  • cancel any recent modification to a calendar/events thanks to the grace period support
  • share their calendars with others as viewers or editors
  • delegate their calendars to others (e.g., coworkers or family member)
  • import calendars/events from others calendars (iCAL or Outlook for example) thanks to the support of the CalDAV standard

Data Science Team

Data team aims to enrich OpenPaaS platform and software with artificial intelligence.

Today, we have an intelligent process allowing us to sort emails!
We built a predictive model that learns by looking at user manual email organization. Every time you put an email into a folder, we learn from it and when we are confident enough, we propose to do this classification for you. For each message 3 elements are taken into account: recipients, sender and mailbox to which it belongs.
This first step led to a result of 70% valid recommendations.

Adding subject and body in the analysis led to a result of 90% valid recommendations.

In prospect, we will integrate this A.I. service in our Inbox module and will give news about it soon.

Social Team

OpenPaaS has 3 modules which are bringing social features to the platform: Contact, Communities and Chat.

The Contact module helps you to manage your contacts. Additionally to standard contacts you can create and use across OpenPaaS modules, the contact module also allows you to import and synchronize your external contacts from your Google and Twitter accounts.

The Communities module brings collaborative feature to the platform by allowing to create ‘groups’ of users, launch discussions, share text, media, links, etc. Users are able to join or leave communities, create public, private or protected ones, like and share messages.

The Chat module brings realtime communication in OpenPaaS. Users can create public or private discussions channels, discuss with other members, mention, invite users to communicate, ‘just like’ nowadays chat tools.

Bots are coming to the chat! A new bot framework has been developed during the last sprint, and the first plugin allows to add members to conversations the cool way: If you mention someone who is not a member of the conversation, the bot will detect it and suggest you to add them to the conversation by just clicking on a link.

The Administration module allows domain administrators changing configurations of the application.

The latest advances done on this module are:

  • bug fixes on our i18n tool that check some rules about our use of i18n
  • Vietnamese translation for the application

As a Conclusion

OpenPaaS production rollout makes Linagorians happy!

Since March 7th, each Linagora employee use OpenPaaS to manage daily email-related tasks making the OpenPaaS team very proud of all the good work achieved!

In our next newsletter, we’ll go further into details for each OpenPaaS module and will explain what features our developers are cooking.

--

--