Architecture

Whether you get hundreds or millions of hits per day, App Cloud provides the deployment option that fits your needs and allows you to scale precisely to meet demand. For example, the DreamHouse sample application can be deployed using different deployment models: Force.com or Force.com + Heroku.

Force.com Deployment

Using this deployment option, the Customer Engagement application accesses data directly in Salesforce using the Salesforce REST APIs. Force.com is also used as the integration hub to connect the different IoT devices used in the application: lights, thermostat, and locks.

Force.com + Heroku Deployment

Using this deployment option, the Customer Engagement application accesses data through a set of REST services hosted on Heroku. The REST services expose data stored in a Postgres database which automatically synchronizes with Salesforce using Heroku Connect. Heroku provides caching and on-demand scalability. The Heroku application can also be used as the integration hub to connect the different IoT devices used in the application: lights, thermostat, and locks. In this sample application the Heroku application is written with Node.js, but it could be written with any other language supported on Heroku: Ruby, Java, Python, Clojure, Scala, Go and PHP.

In this sample scenario, DreamHouse is also an early adopter of bots as a new channel to engage customers. A Heroku application is used as the endpoint to handle incoming bot requests, map them to Salesforce users, and send the requests to Salesforce on behalf of the bot.