Salesforce is a cloud based Customer Relationship Management (CRM) software. Salesforce can also be used as database in Meteor based applications.
Salesforce can be integrated with Meteor by 2 different ways:
- 1) Direct connectivity
- 2) Using Heroku as middleware
In this article we will mainly focus on second method, but first we will see why its need arises. As we know Salesforce has multitenant architecture and it has lots of Governor limits. Salesforce Developer Edition allows 15,000 API calls per 24 hours time period and Salesforce Enterprise Edition with Salesforce license type allows (15,000 + number of licenses * 1000) calls, upto maximum of 1,000,000. This limit might exceed for any real-time application. To overcome this issue need of Heroku arises. Heroku support bulk API call.
Heroku is a cloud platform as a service (PaaS), it allows customer apps to execute on reliable runtime environment inside a virtual container. These virtual containers are called as Dynos. These dynos are written using Node, Ruby, PHP, Go, Python, Scala, Clojure, Java. With support of Heroku’s custom buildpack developer can deploy app in any other language also. Using Heroku developer can scale app either by increasing the number of dynos or by changing type of dyno.
Heroku provides cloud based database named Heroku Postgres. Heroku Postgres is based on PostgreSQL. It provides features like continuous protection, rollback and high availability. While using Salesforce and Heroku with Meteor application, data we send to Salesforce is initially being sent to Heroku and Heroku synchronize that data with Salesforce based on time we have set on Heroku. When Heroku send data to Salesforce it send in bulk thus, not exceeding Salesforce governor limits. This image depicts the process flow being followed while sending data to Salesforce using Meteor application.
Data flow diagram between Meteor, Heroku and Salesforce (Source: SlideShare)
Heroku application has limited number of Dynos, based on plan we have purchased. Sometimes, during some operations we face performance issues. For example, when we send Email by Sendgrid then it utilize 1 complete Dyno, that creates performance issue. But this issue can be resolved by simply refreshing dyno after every certain interval. This refreshing time can be set in Heroku account.
Advantage of using Heroku as middleware is, applications build on Heroku utilize open source language, If application is being acquired by another company, then application based on Heroku can be transferred easily, whereas application build on Salesforce will work on Salesforce only.
Meteor is wonderful framework which can easily be learned, along with Salesforce as database it can provide lots of different features and functionalities. In you want Hybrid mobile application in less time then Meteor can be used, if requirement is of SQL based database then Salesforce is good option as all back-end related functionality and application deploying feature is then handled by Heroku, providing speedy and easy development.Astrea IT Services is a certified partner with both Salesforce.com and Meteor. We have expertise in providing professional services using Salesforce and Meteor. We work with client to develop product from a idea to fully-functional application. Our applications are also available on Play Store and App Store. Astrea is one of the highest rated partners on Salesforce AppExchange.