M4S Overview
MongoDB for Salesforce.com - Super Caching for Salesforce
The MongoDB for Salesforce ("M4S") connector localizes Salesforce data for use with Sitecore CMS software. M4S can act as an advanced super cache, reducing the API calls to Salesforce to as little as you decide, or as a data store that serves both as a gateway to Salesforce and an emergency backup of data should Salesforce become unavailable.
M4S uses FuseIT's proven S4S connection engine to pass data to and from Salesforce in a secure and efficient way.
What can I do with M4S?
Create, read, edit and delete Salesforce.com records from ASP.NET applications
Pull Salesforce records and attachments to ASP.NET applications
Significantly reduce the number of API calls to Salesforce
Significantly increase the access speed to Salesforce data
Access data locally when Salesforce is offline
Bulk process Salesforce data from .NET applications
Transparently handle Salesforce custom objects and fields
Use MongoDB toolsets to extract business intelligence
View Salesforce data with MongoDB client interfaces
Configure data access for real-time or scheduled synchronisation
Easily develop extended features using the professional .NET interfaces
M4S can be extended to auto-generate a web portal that surfaces Salesforce records so internal users can access key information if Salesforce goes offline (data source is MongoDB).
One Way Synching from Salesforce
Scheduled synching is recommended but is not always necessary. It is possible to run M4S without synching because the records get added to MongoDB as they are retrieved from Salesforce. When synching is chosen, M4S ensures data integrity by making Salesforce the "master" and only pulling information down to the local instance of MongoDB.
- A scheduled task on a local server fires an M4S synch method every, say, 5 minutes
- M4S looks at its config file and finds the first Salesforce schema object (e.g. Contacts) that requires synchronisation to MongoDB
- M4S gets all records from the Salesforce schema object that have changed since the last sync
- M4S inserts or updates the records into MongoDB
- M4S looks at its config file and finds the next Salesforce schema object (e.g. Accounts) that requires synchronisation to MongoDB
- Process repeats until MongoDB is fully up to date for the subset of Salesforce schema objects
ASP.NET Read from Salesforce – Record found
- ASP.NET requests M4S to get data from a Salesforce record (e.g. a contact)
- M4S looks in the cache (which has been configured to use MongoDB) and finds the record
- M4S returns the record to the requesting ASP.NET code
ASP.NET Read from Salesforce - Record not found
- ASP.NET requests M4S to get data from a Salesforce record (e.g. a contact)
- M4S looks in the cache (which has been configured to use MongoDB) and cannot find the record
- M4S uses S4S to call Salesforce and return the object to the requesting ASP.NET code
- M4S inserts the object into MongoDB so it is locally available in the future
ASP.NET Create/Update to Salesforce
- ASP.NET code passes a new or updated record to M4S
- M4S uses S4S to insert or update a record in Salesforce. The record id is returned in the Save Result
- M4S inserts or updates the record in MongoDB (with the Salesforce object id)
ASP.NET Create/Update to Salesforce when Salesforce is Offline (in development)
- ASP.NET code passes a new or updated record to M4S
- M4S uses S4S to insert or update a record in Salesforce. Save Result will detect failure
- M4S inserts or updates the record in MongoDB (and flags it for "Action required")
- When the scheduler runs, it checks Salesforce is available, then looks for flagged records. M4S then uses S4S to insert or update the flagged records in Salesforce and updates MongoDB with the record ids from the Save Result
ASP.NET Delete to Salesforce
- ASP.NET code makes a delete request to M4S
- M4S uses S4S to delete the data from Salesforce then deletes it from MongoDB depending upon the Delete Save Result.
FuseIT have several enterprise integrations between Sitecore, Salesforce and HPE Records Manager (HP TRIM) that let you selectively share data and documents internally or to the public.