Altoros Ruby team developed middleware to synchronize the multiple accounts in Salesforce.com Chatter, an enterprise social network. The application enables synchronizing the accounts used by different companies or the divisions within one company, thus, allowing the users to coordinate the work and follow updates on people, groups, documents, etc.

The customer provides the services on Salesforce.com products customization and configuration to adjust the applications to the specific needs of different users. The company turned to Altoros to build middleware for synchronizing the accounts of Salesforce.com Chatter, a collaboration application for the enterprise to connect and share information securely with people at work in real-time. The main aim was to enable different companies that have these accounts to collaborate and coordinate their business activities on the fly.

The developers had to build the back end that would automatically track new updates and synchronize them to enable a smooth communication flow.

The most complicated issue was to handle the content and distribute it to the required servers. Altoros team had to build the middleware so that the system could be easily extended and scaled up to millions of users preserving the same performance.

According to the initial requirements, the application had to be hosted on the Heroku servers that provide dynamic IPs only, which implies that the large range of users’ IPs had to be added to Chatter manually. This kind of limitations leads to more complicated end-user experience. To solve this issue, the team plans to utilize additionally the Engine Yard hosting solution.

To ensure a high level of the system performance, the team of Ruby on Rails developers used relational databases and solutions based on queue. Delayed_job, a querying system for Rails, allowed putting off the requests and arranging them in a queue for further processing. RabitMQ is planned to be utilized to enable registering tasks so that to reduce the load on the server.

With this synchronizing software, the customer will be able to offer a new customization solution that allows more efficient information exchange and provides for closer cooperation between multiple companies. The users will get the possibility to track all corporate updates and be aware of all the relevant changes.