Smart Synchronization

Related products: Software Factory

Smart upgrades have been possible for quite some time. One feature that would greatly benefit the deployment process would be a smart sync. The SF knows which objects have been modified so it should also be able to deduce which object need to be synced. This could speed up the syncing process by miles and would make the SF even more powerful to use. 

Both the Software Factory and Intelligent Application Manager do cache a checksum of the compressed model data, which is used to determine if the model data differs between what is present in the SF and present in the IAM. This already lowers the synchronization time a bit as the data does not need to be processes.

We have looked into having a function that can easily determine if a certain table object is mutated or not, such as if a column was added or not. However, this looks promising for single object processes, but a bit more difficult for a combination of objects. We would love to find a way to enable this as this would drastically improve the synchronization time as all synchronization objects that haven't been touched, also won't even be generated.

"Smart upgrades” do still generate all program objects that are not generated yet. The Smart part comes in when code files are constructed. In them, only the changed program objects will be included.

Allowing a similar Smart synchronization aproach would be nice as the process can take quite a while. Giving the developer the ability to only sync a part of the model essentially can potentially cause the application model to be incorrect and woud stop functioning properly as Indicium will find these model data problems.

But I do think if we can accomplish the above - as in finding a way to safely determine a synchronization object should or should not be regenerated -, we will have resolved the idea 😉


NewOpen

Each SF release is a surprise for us. Is synchronizing to IAM slow again or is the speed the same as it was? After the upgrade from SF 2023.1 to SF 2023.3 the IAM synchronization takes 20 (or 30) minutes longer than before. In worst case scenarios a synchronization to IAM takes 45 minutes.

We work with the Windows GUI via Indicium Basic. As developers we would like to test the software against Indicium Basic as fast as possible. Starting with an ‘all_rights’ role and after the roles are configured we test with the default user groups. But for small changes in the model, such as translations/ prefilter queries/ process action input parameters, a full synchronization is started to be able to test that change. These changes have nothing to do with roles.

In many TCP tickets the i_sync_role_* functions are marked as the issue.

What if we could chose the synchronization method like this:
1. Sync model only
2. Sync roles only
3. Sync both

I believe that option 1 could drastically improve a synchronization to IAM. Which will improve our development speed and decreases our frustration (when a small model change needs a complete 45 minute synchronization).