Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Offline Entities for Central v2024.3.0 #1904

Merged
merged 11 commits into from
Dec 17, 2024

Conversation

lognaturel
Copy link
Member

Progress towards #1855

I did some rearranging that may be controversial. I recommend reviewing commit by commit.

@lognaturel lognaturel requested a review from ktuite December 16, 2024 23:09
@@ -57,11 +64,9 @@ What's available now:

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm reading these docs top down (after looking at the individual commits) and I feel like the upper list of "what's available now" could also use a bullet point or two about updating entities and offline entities. I'm not sure if "Use Entities in one or more follow-up form" covers it.

@@ -300,39 +307,15 @@ Updating Entities from Forms

You can use Forms to update Entity information. These Forms can be authored to, for example, update previous observations to new values or change the status of an Entity. Just like Entity creation through Forms, you can specify which properties on which Entity instances will be updated when the Form's Submissions are uploaded to Central. The data in Submissions uploaded by Entity-updating Forms are applied to the Entity data saved on the Central server. These updated Entity values are then distributed to data collection clients once they synchronize with Central.

.. _central-entities-update-conflicts:

Parallel Updates in Updating Forms
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm a fan of moving this down and not having it be so prominent in the updating entities section!

Collect v2024.3.0 or later attempts to send Submissions in the order they were created. However, this may not always be possible. If Central receives a Submission that is an offline update based on an earlier Submission it has not received yet, it will hold the newer Submission for up to 5 days. If the earlier Submission(s) arrive within 5 days, all updates in the offline series will be immediately processed in order. If, after 5 days, earlier Submissions have not been received, the held Submission(s) will be force processed and the Entity will be marked as having a conflict.

If an Entity is created and then updated offline, there is the possibility that the Form Submissions representing updates will be received by Central before the Submission representing the creation of the Entity. In that case, the update Submissions will be held for up to 5 days. If the create Submission is received any time before 5 days, the Entity will be created by Central and any held updates will immediately be processed in order. If the Submission that would have created the Entity is not received within 5 days, Central will process the first update Submission it has as a create and the Entity will be marked as having a conflict.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could be worth mentioning the reasoning behind this design decision (to hold submissions but then process them anyway) is about salvaging information and using the data in the Submissions even if previous Submissions are missing.

@lognaturel
Copy link
Member Author

Thanks @ktuite!

@lognaturel lognaturel merged commit 5504f4d into getodk:master Dec 17, 2024
1 check passed
@lognaturel lognaturel deleted the offline-entities branch December 17, 2024 20:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants