Master Class 2: Diving
Deeper: Complex Sync
Patterns and Delta Syncing
Saturday, 18 Jan 2025
3:00 PM to 4 :30 PM
2
Learn, ask questions, access reusable apps,
share ideas, and connect with other
OutSystems developers around the world.
Follow us at :
outsystems.com/community
usergroups.outsystems.com
outsyste.ms/champions
outsyste.ms/mvp
OutSystems Community
6
Join the OutSystems Developer
School
1. Sign Up 2. Participate 3. Get Certified
→ →
Unlock your potential with OutSystems Developer Schools! Enroll today to complete
comprehensive training and earn free vouchers for certifications, empowering you to excel
in low-code development.
outsystems.com/developer_school/
Apply to join the OutSystems
Developer School
Attend a live instructor led
training on ODC or
OutSystems Reactive
Receive voucher to complete
OutSystems certifications
7
Join the OutSystems Research
Program
1. Sign Up 2. Participate 3. Get Rewarded
→ →
Get involved in Product Development! Share your thoughts and opinions with us by
participating in our research activities. You’ll be invited to contribute to the design decisions
that really fit users' needs and help us build the future of software development.
outsystems.com/our-community/research-
program/
Apply to join the OutSystems
Research Program
Take part in a study you’ve
matched with
Receive compensation or a
small gift for sharing your
thoughts
Organizers
Krishnnambal
S
OSUG Chennai
OutSystems MVP
Manager @ Xebia
Hathimary A
OSUG Chennai
OutSystems Champion
Architect @ Aaseya
7
Today Speaker
9
Agenda
1. Welcome & Introduction
2. Technical Discussion
3. Quiz
4. Event Wrap Up
Diving Deeper: Complex Sync
Patterns and Delta Syncing
Read-Write, One-to-Many
Data
1
1. Check local data on primary table for
new, updated and deleted
11
Read-Write, One-to-Many
Data
1. Check local data on primary table for
new, updated and deleted
2. Check local data on foreign table
for new, updated and deleted
2
12
Read-Write, One-to-Many
Data
3
1. Check local data on primary table for
new, updated and deleted
2. Check local data on foreign table
for new, updated and deleted
3. On server, create new data
13
Read-Write, One-to-Many
Data
1. Check local data on primary table for
new, updated and deleted
2. Check local data on foreign table
for new, updated and deleted
3. On server, create new data
4. Create dictionary with primary Ids
4
14
Read-Write, One-to-Many
Data
1. Check local data on primary table for
new, updated and deleted
2. Check local data on foreign table
for new, updated and deleted
3. On server, create new data
4. Create dictionary with primary Ids
5. Update rows received from device
with the new ids in the dictionary
15
5
Read-Write, One-to-Many
Data
6. Add, update and delete foreign entity
in the server
16
3
Read-Write, One-to-Many
Data
7
6. Add, update and delete foreign entity
in the server
7. Send both entities to the device
17
Read-Write, One-to-Many
Data
8,1
0
6. Add, update and delete foreign entity
in the server
7. Send both entities to the device
18
8. Delete the foreign entity in the
device
9. Delete the primary entity in the
device
10. Add all data for primary entity
received from the server
Read-Write, One-to-Many
Data
9,1
1
6. Add, update and delete foreign entity
in the server
7. Send both entities to the device
19
8. Delete the foreign entity in the
device
9. Delete the primary entity in the
device
10. Add all data for primary entity
received from the server
11. Add all data for foreign entity
received from the server
How to avoid this
complexity???
20
21
22
23
24
GUID reduce complexity but how to
optimize Performance
25
26
27
Read Write Optimized
Read-Write (optimized)
1
29
Initial Setup before
implementing the optimization.
1. Create a Static Entity - To
store entities that need to be
synchronized.
Read-Write (optimized)
2
30
Initial Setup before
implementing the optimization.
2. Create a local Storage Entity -
to store the Last Sync Time with
Identifier as SyncEntities
3. Create a action to fetch the last sync
time
Read-Write (optimized)
31
Initial Setup before
implementing the optimization.
3
Company
2 Pm
Read-Write (optimized)
32
Initial Setup before
implementing the optimization.
4. In the server entity, create an
attribute called "UpdatedTime."
● Data Type: DateTime
● Default Value: CurrDateTime()
● Note: Ensure that this attribute is
updated in all CRUD operations
of the entity.
4
Read-Write (optimized)
33
Initial Setup before
implementing the optimization.
We have completed the initial setup for optimization;
now, let's begin the optimization process.
Read-Write (optimized)
1. Get device last sync Date Time
from local storage.
1
34
Implementing the optimization.
Read-Write (optimized)
1. Get device last sync Date Time
from local storage.
2
35
Implementing the optimization.
2. In the server action, insert,
update, and delete records from
local storage to the server.
Note: Ensure that in all Create or
update operations, the
"UpdatedTime" attribute is
updated to CurrDateTime().
Read-Write (optimized)
1. Get device last sync Date Time
from local storage.
2
36
Implementing the optimization.
2. In the server action, insert,
update, and delete records from
local storage to the server.
Note: Ensure that in all Create or
update operations, the
"UpdatedTime" attribute is
updated to CurrDateTime().
Read-Write (optimized)
1. Get device last sync Date Time
from local storage.
3
37
Implementing the optimization.
2. In the server action, pass the
"Last Sync DateTime," and ensure
that in all CRUD operations, the
"UpdatedTime" attribute is updated
to CurrDateTime.
3. Fetch only the newly created or
modified records since the Last
Sync Time. Assign the new
SyncTime as CurrDateTime() in the
output parameter.
Read-Write (optimized)
1. Get device last sync Date Time
from local storage.
4
38
Implementing the optimization.
4. Delete all the newly created records.
and create records fetched from the server action
2. In the server action, pass the
"Last Sync DateTime," and ensure
that in all CRUD operations, the
"UpdatedTime" attribute is updated
to CurrDateTime.
3. Fetch only the newly created or
modified records since the Last
Sync Time.
Read-Write (optimized)
5. Update the Last Sync Time In
Local Database
Note Make Sure you pass the Same
Sync Entitiy Id which is used to fetch
the last sync time.
5
39
Implementing the optimization.
Read-Write (optimized)
Case - 1 (Soft Delete, delete the
records from local storage ) Filter out
the created and deleted records, then
create or delete them accordingly:
● For created records, insert them
into the database.
● For deleted records, remove
them from the database.
4
40
Implementing the optimization. Delete cases
Condition to check if the record
exists in the local database
: Empty
Case - 2 (Soft Delete, Update the
records in local storage ) All the
records will get updated with the
IsActive flag to True or False
accordingly.
Read-Write (optimized)
41
Implementing the optimization. Delete cases
Questions?
Thank you
Thank You

More Related Content

PDF
ScalaUA - distage: Staged Dependency Injection
PPTX
Sumo Logic Cert Jam - Fundamentals
PDF
IUG ATL PC 9.5
PDF
Sync or swim: the challenge of complex offline apps
PDF
Treasure Data Summer Internship 2016
PDF
Fcm rapid-install-11122-1634210
PDF
websphere cast iron labs
PPTX
Introducing Cloudian HyperStore 6.0
ScalaUA - distage: Staged Dependency Injection
Sumo Logic Cert Jam - Fundamentals
IUG ATL PC 9.5
Sync or swim: the challenge of complex offline apps
Treasure Data Summer Internship 2016
Fcm rapid-install-11122-1634210
websphere cast iron labs
Introducing Cloudian HyperStore 6.0

Similar to Mobile app master class - Session 2.pptx (20)

PDF
Kubernetes as data platform
PDF
DevOpsDaysRiga 2018: Eric Skoglund, Lars Albertsson - Kubernetes as data plat...
PDF
Active Directory Security Assessment ADSA
DOC
( 5 ) Office 2007 Create A Business Data Catolog
PPTX
Upgrade to 2008 Best of PASS
PPTX
Microsoft Windows Server AppFabric
PDF
Apache Calcite Tutorial - BOSS 21
PDF
LinuxCon 2013 Steven Dake on Using Heat for autoscaling OpenShift on Openstack
PPTX
Python Automation With Gauge + Selenium + API + Jenkins
PDF
Silicon Valley Code Camp 2015 - Advanced MongoDB - The Sequel
PDF
Migrate database to Exadata using RMAN duplicate
DOCX
C# and Borland StarTeam Connectivity
PDF
Informatica object migration
PPTX
2012 Q1 Tools for Better Code
PDF
UEMB270: Software Distribution Under The Hood
PPTX
MTR Troubleshooting
DOC
Netw 230 Success Begins / snaptutorial.com
PDF
What the Heck Just Happened?
PDF
Quick-Start Guide: Deploying Your Cloudian HyperStore Hybrid Storage Service
PPTX
Securing Your Enterprise Web Apps with MongoDB Enterprise
Kubernetes as data platform
DevOpsDaysRiga 2018: Eric Skoglund, Lars Albertsson - Kubernetes as data plat...
Active Directory Security Assessment ADSA
( 5 ) Office 2007 Create A Business Data Catolog
Upgrade to 2008 Best of PASS
Microsoft Windows Server AppFabric
Apache Calcite Tutorial - BOSS 21
LinuxCon 2013 Steven Dake on Using Heat for autoscaling OpenShift on Openstack
Python Automation With Gauge + Selenium + API + Jenkins
Silicon Valley Code Camp 2015 - Advanced MongoDB - The Sequel
Migrate database to Exadata using RMAN duplicate
C# and Borland StarTeam Connectivity
Informatica object migration
2012 Q1 Tools for Better Code
UEMB270: Software Distribution Under The Hood
MTR Troubleshooting
Netw 230 Success Begins / snaptutorial.com
What the Heck Just Happened?
Quick-Start Guide: Deploying Your Cloudian HyperStore Hybrid Storage Service
Securing Your Enterprise Web Apps with MongoDB Enterprise
Ad

Recently uploaded (20)

PDF
Dell Pro Micro: Speed customer interactions, patient processing, and learning...
PPTX
GROUP4NURSINGINFORMATICSREPORT-2 PRESENTATION
PDF
IT-ITes Industry bjjbnkmkhkhknbmhkhmjhjkhj
PPTX
agenticai-neweraofintelligence-250529192801-1b5e6870.pptx
PDF
5-Ways-AI-is-Revolutionizing-Telecom-Quality-Engineering.pdf
PDF
4 layer Arch & Reference Arch of IoT.pdf
PDF
giants, standing on the shoulders of - by Daniel Stenberg
PDF
“The Future of Visual AI: Efficient Multimodal Intelligence,” a Keynote Prese...
PDF
The-Future-of-Automotive-Quality-is-Here-AI-Driven-Engineering.pdf
PDF
Enhancing plagiarism detection using data pre-processing and machine learning...
PDF
A hybrid framework for wild animal classification using fine-tuned DenseNet12...
PPTX
Training Program for knowledge in solar cell and solar industry
PDF
Transform-Your-Factory-with-AI-Driven-Quality-Engineering.pdf
PDF
Rapid Prototyping: A lecture on prototyping techniques for interface design
DOCX
Basics of Cloud Computing - Cloud Ecosystem
PDF
Transform-Your-Supply-Chain-with-AI-Driven-Quality-Engineering.pdf
PDF
EIS-Webinar-Regulated-Industries-2025-08.pdf
PDF
Auditboard EB SOX Playbook 2023 edition.
PDF
Introduction to MCP and A2A Protocols: Enabling Agent Communication
PDF
Transform-Your-Streaming-Platform-with-AI-Driven-Quality-Engineering.pdf
Dell Pro Micro: Speed customer interactions, patient processing, and learning...
GROUP4NURSINGINFORMATICSREPORT-2 PRESENTATION
IT-ITes Industry bjjbnkmkhkhknbmhkhmjhjkhj
agenticai-neweraofintelligence-250529192801-1b5e6870.pptx
5-Ways-AI-is-Revolutionizing-Telecom-Quality-Engineering.pdf
4 layer Arch & Reference Arch of IoT.pdf
giants, standing on the shoulders of - by Daniel Stenberg
“The Future of Visual AI: Efficient Multimodal Intelligence,” a Keynote Prese...
The-Future-of-Automotive-Quality-is-Here-AI-Driven-Engineering.pdf
Enhancing plagiarism detection using data pre-processing and machine learning...
A hybrid framework for wild animal classification using fine-tuned DenseNet12...
Training Program for knowledge in solar cell and solar industry
Transform-Your-Factory-with-AI-Driven-Quality-Engineering.pdf
Rapid Prototyping: A lecture on prototyping techniques for interface design
Basics of Cloud Computing - Cloud Ecosystem
Transform-Your-Supply-Chain-with-AI-Driven-Quality-Engineering.pdf
EIS-Webinar-Regulated-Industries-2025-08.pdf
Auditboard EB SOX Playbook 2023 edition.
Introduction to MCP and A2A Protocols: Enabling Agent Communication
Transform-Your-Streaming-Platform-with-AI-Driven-Quality-Engineering.pdf
Ad

Mobile app master class - Session 2.pptx

  • 1. Master Class 2: Diving Deeper: Complex Sync Patterns and Delta Syncing Saturday, 18 Jan 2025 3:00 PM to 4 :30 PM
  • 2. 2 Learn, ask questions, access reusable apps, share ideas, and connect with other OutSystems developers around the world. Follow us at : outsystems.com/community usergroups.outsystems.com outsyste.ms/champions outsyste.ms/mvp OutSystems Community
  • 3. 6 Join the OutSystems Developer School 1. Sign Up 2. Participate 3. Get Certified → → Unlock your potential with OutSystems Developer Schools! Enroll today to complete comprehensive training and earn free vouchers for certifications, empowering you to excel in low-code development. outsystems.com/developer_school/ Apply to join the OutSystems Developer School Attend a live instructor led training on ODC or OutSystems Reactive Receive voucher to complete OutSystems certifications
  • 4. 7 Join the OutSystems Research Program 1. Sign Up 2. Participate 3. Get Rewarded → → Get involved in Product Development! Share your thoughts and opinions with us by participating in our research activities. You’ll be invited to contribute to the design decisions that really fit users' needs and help us build the future of software development. outsystems.com/our-community/research- program/ Apply to join the OutSystems Research Program Take part in a study you’ve matched with Receive compensation or a small gift for sharing your thoughts
  • 5. Organizers Krishnnambal S OSUG Chennai OutSystems MVP Manager @ Xebia Hathimary A OSUG Chennai OutSystems Champion Architect @ Aaseya 7
  • 7. 9 Agenda 1. Welcome & Introduction 2. Technical Discussion 3. Quiz 4. Event Wrap Up
  • 8. Diving Deeper: Complex Sync Patterns and Delta Syncing
  • 9. Read-Write, One-to-Many Data 1 1. Check local data on primary table for new, updated and deleted 11
  • 10. Read-Write, One-to-Many Data 1. Check local data on primary table for new, updated and deleted 2. Check local data on foreign table for new, updated and deleted 2 12
  • 11. Read-Write, One-to-Many Data 3 1. Check local data on primary table for new, updated and deleted 2. Check local data on foreign table for new, updated and deleted 3. On server, create new data 13
  • 12. Read-Write, One-to-Many Data 1. Check local data on primary table for new, updated and deleted 2. Check local data on foreign table for new, updated and deleted 3. On server, create new data 4. Create dictionary with primary Ids 4 14
  • 13. Read-Write, One-to-Many Data 1. Check local data on primary table for new, updated and deleted 2. Check local data on foreign table for new, updated and deleted 3. On server, create new data 4. Create dictionary with primary Ids 5. Update rows received from device with the new ids in the dictionary 15 5
  • 14. Read-Write, One-to-Many Data 6. Add, update and delete foreign entity in the server 16 3
  • 15. Read-Write, One-to-Many Data 7 6. Add, update and delete foreign entity in the server 7. Send both entities to the device 17
  • 16. Read-Write, One-to-Many Data 8,1 0 6. Add, update and delete foreign entity in the server 7. Send both entities to the device 18 8. Delete the foreign entity in the device 9. Delete the primary entity in the device 10. Add all data for primary entity received from the server
  • 17. Read-Write, One-to-Many Data 9,1 1 6. Add, update and delete foreign entity in the server 7. Send both entities to the device 19 8. Delete the foreign entity in the device 9. Delete the primary entity in the device 10. Add all data for primary entity received from the server 11. Add all data for foreign entity received from the server
  • 18. How to avoid this complexity??? 20
  • 19. 21
  • 20. 22
  • 21. 23
  • 22. 24
  • 23. GUID reduce complexity but how to optimize Performance 25
  • 24. 26
  • 25. 27
  • 27. Read-Write (optimized) 1 29 Initial Setup before implementing the optimization. 1. Create a Static Entity - To store entities that need to be synchronized.
  • 28. Read-Write (optimized) 2 30 Initial Setup before implementing the optimization. 2. Create a local Storage Entity - to store the Last Sync Time with Identifier as SyncEntities
  • 29. 3. Create a action to fetch the last sync time Read-Write (optimized) 31 Initial Setup before implementing the optimization. 3 Company 2 Pm
  • 30. Read-Write (optimized) 32 Initial Setup before implementing the optimization. 4. In the server entity, create an attribute called "UpdatedTime." ● Data Type: DateTime ● Default Value: CurrDateTime() ● Note: Ensure that this attribute is updated in all CRUD operations of the entity. 4
  • 31. Read-Write (optimized) 33 Initial Setup before implementing the optimization. We have completed the initial setup for optimization; now, let's begin the optimization process.
  • 32. Read-Write (optimized) 1. Get device last sync Date Time from local storage. 1 34 Implementing the optimization.
  • 33. Read-Write (optimized) 1. Get device last sync Date Time from local storage. 2 35 Implementing the optimization. 2. In the server action, insert, update, and delete records from local storage to the server. Note: Ensure that in all Create or update operations, the "UpdatedTime" attribute is updated to CurrDateTime().
  • 34. Read-Write (optimized) 1. Get device last sync Date Time from local storage. 2 36 Implementing the optimization. 2. In the server action, insert, update, and delete records from local storage to the server. Note: Ensure that in all Create or update operations, the "UpdatedTime" attribute is updated to CurrDateTime().
  • 35. Read-Write (optimized) 1. Get device last sync Date Time from local storage. 3 37 Implementing the optimization. 2. In the server action, pass the "Last Sync DateTime," and ensure that in all CRUD operations, the "UpdatedTime" attribute is updated to CurrDateTime. 3. Fetch only the newly created or modified records since the Last Sync Time. Assign the new SyncTime as CurrDateTime() in the output parameter.
  • 36. Read-Write (optimized) 1. Get device last sync Date Time from local storage. 4 38 Implementing the optimization. 4. Delete all the newly created records. and create records fetched from the server action 2. In the server action, pass the "Last Sync DateTime," and ensure that in all CRUD operations, the "UpdatedTime" attribute is updated to CurrDateTime. 3. Fetch only the newly created or modified records since the Last Sync Time.
  • 37. Read-Write (optimized) 5. Update the Last Sync Time In Local Database Note Make Sure you pass the Same Sync Entitiy Id which is used to fetch the last sync time. 5 39 Implementing the optimization.
  • 38. Read-Write (optimized) Case - 1 (Soft Delete, delete the records from local storage ) Filter out the created and deleted records, then create or delete them accordingly: ● For created records, insert them into the database. ● For deleted records, remove them from the database. 4 40 Implementing the optimization. Delete cases Condition to check if the record exists in the local database : Empty
  • 39. Case - 2 (Soft Delete, Update the records in local storage ) All the records will get updated with the IsActive flag to True or False accordingly. Read-Write (optimized) 41 Implementing the optimization. Delete cases

Editor's Notes

  • #1: Welcome everyone to the User Group Event High code to low code a journey from stone age to digital age.
  • #9: Todays following Agenda will be in order Welcome High Code v/s Low Code Transformation High code to Low code Demo-Build App in Low code( OutSystems Platform) Q & A (Question Round) Networking Lets start with