Sesame Software has focused on data integration, data replication and automated data warehouses for over 14 years. During this time, we have learned a lot about reliability, scalability, performance, and automation. For instance, our Salesforce data replication product is 100 times faster than it was originally, and can reliably handle terabytes of Salesforce data.

The knowledge that is embodied in our replication products is protected by United States patents. There are five patents currently awarded and five patents pending for data replication, data integration, and data recovery techniques. Sesame Software vigorously protects its intellectual property.

Method of Integrating Remote Databases by Automated Client Scoping of Update Requests

February 21, 2012

United States Patent 8,122,040 yields a major competitive advantage for Sesame Software’s Relational Junction replication and data warehouse offerings, which includes products for Salesforce, NetSuite and QuickBooks. Among the vendors offering replication and integration tools, only Relational Junction effectively replicate massive amounts of data for integration and analysis with other corporate data and for data backup to meet regulatory compliance mandated in a variety of industries.

This patent describes a scalability technique that breaks down the replication process into smaller data sets by ranges of time stamps in the source data. This allows Relational Junction replication products to copy unlimited data sets by breaking them into discreet ranges and checkpointing the results for restartability. The time ranges are variable length, depending on how much data is queried in the previous time range, and adjusted to prevent attempting to download too much in any one interval. This prevents timeouts from the SaaS data source and also makes the process restartable at the point of failure rather than having to repeatedly truncate and reload a database table when failures occur.

Sesame Software’s patented technique of segmenting data by variable date ranges means that our Relational Junction for Salesforce and Relational Junction for NetSuite products are the only data replication products that can effectively handle tens of millions of records. Some of Sesame Software’s customers have up to half a terabyte of data in the cloud, and we are able to load it to the on-premise database despite numerous timeouts and restarts required during the initial load.

A method for bi-directional data replication between a Web Service application and a relational database are provided. Techniques of Enterprise Application Integration (EAI) and Extract Transform Load (ETL) technology are employed to create a relational database schema, load the schema, synchronize the structure and the content of the schema, and replicate changes in the content of the schema to the web services application. Optional advanced techniques to support reporting, legacy data migration, and integration with other applications are also provided.

Data Replication of Related Records to SaaS Data Sources

February 12, 2013

United States Patent 8,375,010 provides a way for Sesame Software’s Relational Junction replication offerings to create related records in Salesforce, NetSuite, and QuickBooks in one pass, keeping the child records pointing to the parents as new parents are created in the SaaS system. This technique allows a user of the system to create new parent-child records with temporary keys in the relationship fields. As the new parent records are created in the SaaS system during replication, the replication process is notified of the new key generated by the SaaS application. The replication process updates the local database with this key. Database triggers generated ahead of time are knowledgeable of the relationships in the data model, and look for related record with the old key, updating the key values where found.

A computer-implemented method for integrating applications with a network service application is provided. A database management system automatically updates a local database of a computer with information contained within a remote database and an application is enabled to generate a new record in the local database with temporary values in the relationship fields such that the child records are logically related to one or more parent records by virtue of having the same relationship values. A new record is created by the web service for the parent record. When a changed value of the parent record's key is detected, a value of the key of relevant changed parent record is written into one or more local related record's relationship field.

Method for Generating Indexes for Downloading Data

June 3, 2014

United States Patent 8,745,029 provides a method for generating indexes for downloading data. This is essential to performance of the database triggers referenced in patent 8,375,010, “Data replication of related records to SaaS Data Sources”, and also boosts performance of reports and other operations that join tables.

Relational Junction provides an on-premise replicated database for SaaS data sources. The metadata provided by a mature SaaS API such as enables the product to interrogate the relationship structure, and create a database schema with performance indexes on the relationship fields. The automation of this index creation is what sets Relational Junction apart from other vendor offerings in providing a fully indexed warehouse.

A method for bi-directional data replication between a Web Service application and a relational database are provided. In an electronic communications network, a computer implemented method is provided for generating indexes of relationship fields by accessing the metadata of a remote web service. A plurality of records may be downloaded from the remote web service to a computer. The plurality of records may include metadata related to the identity of data fields involved in parent-child record relationships. An index may be built at least partially on the data fields involved in parent-child relationships.

Method for Generating Indexes for Downloading Data

March 27, 2018

United States Patent 9,928,255 provides a system method for patent 8,745,029

A method for bi-directional data replication between a Web Service application and a relational database are provided. In an electronic communications network, a computer implemented method is provided for generating indexes of relationship fields by accessing the metadata of a remote web service. A plurality of records may be downloaded from the remote web service to a computer. The plurality of records may include metadata related to the identity of data fields involved in parent-child record relationships. An index may be built at least partially on the data fields involved in parent-child relationships.

Method of integrating remote databases by automated client scoping of update requests prior to download via a communications network

September, 5, 2017

United States Patent  9,754,001 provides a system method of patent 8,122,040.

A system and method enable the selection of a time range of database records for download from a source database source and for transfer to a recipient database. A specifically bounded time period is selected to limit the number of data records selected for download in a particular action to those records that are individually associated with date time stamp values falling within the specified time period. This limitation of records selected for inclusion in a download process to data records having associations with date time stamps falling within a limited time range reduces a likelihood of overload in transferring data and thereby reduces the incidence of time-outs in the communication of a source database, any intermediary server or software action, and the recipient database in an updating of the recipient database to reflect a current state of the source database. A plurality of threads may be employed to contemporaneously download records associated with date time stamps having values within a requested time range whereby data records may be downloaded in parallel.

Method to Federate Data Replication over a Communications Network

March 15, 2018

United States Patent Application 15/818,645 provides parallel processing of Cloud data to a database, speeding performance by up to 100 times a single-threaded read-write process. Relational Junction provides a transaction-oriented load that is restartable at the point of failure without having to use bulk API's which land data into flat files, yet is at least as fast.

A method and system enable acceleration of high performance data replication over an Internet connection by means of parallel processes. Scalability of data replication is enhanced both by means of parallel queries as subtasks of a main controller, and by wrapping the queries in date time stamp-bounded ranges, requesting only records falling within the specific times indicated by the date time stamp. By wrapping the queries, the number of records per pass is limited, enhancing the efficiency of each pass. The reduced number of records per pass further facilitates re-initiation of data replication upon failure, because fewer records are less burdensome for a computing system to attempt to transmit and/or receive multiple times. Also presented is a method by which a client may query a remote server for record keys, in place of full records, such that the client and server need process less data.

Method and system for dynamically modifying database metadata and structures

January 26, 2017

United States Patent Application  14/806,258  solves the problem of attempting to load text data to a data warehouse when the text content is wider than the database column by dynamically adjusting the column width to fit the data.

A system and method enable the selection of database records for editing and writing. A database record is queried for the size of the data fields contained therein. The size of the data field is compared to the field width limitation of a storage database. When it is determined that the data field displays a size greater than the size of the field width limitation of the storage database, a computing device extends the size of the limitation to accommodate the new database record data field. When the size of the limitation is expanded, the new database record is written to the storage database. The system and method may optionally include the input of a user at the final steps, wherein the user may optionally approve or disapprove the extension of the size of the field width limitation.

Method to Replicate Complex Data Structures Using Multiple Queries

October 6, 2016

United States Patent Application  14/680,051 handles queries that exceed the maximum complexity or length of the source query or the ability of the receiving database to insert or update all the columns at once by breaking the query into a subset of fields.


A system and method enable the modification of software data queries for the purpose of overcoming the problem of large, cumbersome data queries. The method and system presented includes a client device, which may split a software data query into segments representing a fraction of the original query size, and submit the divided data query to a remote server. The division of the initial query may continue until the query size is usable by the remote server. The remote server may receive the segmented query, and transmit database records associated with the fields in the divided query to the client device. Further segments of the divided query may be transmitted until the full query has been transmitted to the remote server. The divided queries may include date time stamp bounds to determine the desired database records. A computing device created specifically for the above-listed tasks may be utilized.

System and Method for Time Parameter Based Database Restoration

March 3, 2017

United States Patent Application  14/855,552 describes a robust method of restoring data to a prior point in time within a relational database backup. This method is both granular to the record and field level, and can support a visual recovery user interface to tag and recover specific versions of the records that have been corrupted or deleted in the source system.


A system and method are provided for the recovery and restoration of software records of a database server to record iterations previous to the current state of the selected records. This action may be taken in order to overcome the consequences of database corruption. An event-time maybe designated which is applied to select some or all of the earlier but most recent versions of each selected record. The system and method presented include a local target database for the purpose of recording software records to an archive, and may include a remote source database, from which records may be transmitted to the local target database. A restore command may be detected by the database server as sent from the remote source server, as received in an electronic message, as received via an electronics communications network, or as directly input. The local target database may have access to multiple iterations or versions of a software record including the original record version as stored in an archive, and may, upon instruction or command, revert to a previous iteration of a software record stored in the archive if corruption of later iterations is suspected. Alternatively or additionally, the local target database may not be restored with earlier versions of records but the remote source database may be restored with the selected record versions. The software records may optionally be updated in a batch method, or may alternatively be updated in real time, as the software records are created.

Multi-Threaded Download with Asynchronous Writing

November 16, 2017

United States Patent Application  15/154,968 further improves the art of multi-threaded loading of a relational database from a source application by storing the record identifiers that meet a specified query range or filter, multi-threading readers on the content, saving the records in memory, and writing the records from memory into a database. The scalability and performance of this technique allows massive amounts of data to be loaded quickly and with full restartability in the event of a failure.


A system and method are presented for the facilitation of threaded download of software record identifiers and software records. Software record identifiers and software records are stored in separate one-dimensional stacks, which stacks feed a plurality of download threads in a first-in, first-out method. Software records and/or software record identifiers may optionally be written in parallel, or in an asynchronous manner. The total number of threads allowed to a user may optionally be limited to a pre-set number. The speed and efficiency of downloading records is increased through use of all of the cores of multi-cored computing systems to substantively concurrently download several threads. The method further allows a failed download thread to restart from the point at which it failed, rather than beginning again from the origin of the thread, thus ensuring that no software records are duplicated, and that no software records are skipped within a download thread.