I just ran into a use case that left me with missing data and I’d like to confirm if what happened really is the expected behaviour or if something is amiss.
Context and sequence of events:
- I have a package delivery app for delivery drivers, whose database is a Google Sheet
- My company delivers between 100 and 200 packages every Tuesday
- I have an email workflow to let customers know their package is en route, triggered by manually pressing an action at the start of the delivery day
- This creates between 100 and 200 updates that take several minutes to process
- Each update consists of changing the value of a single boolean column
- This week, the person who clicked the action did so from a mobile device, probably ran into network issues, and the sync stopped with 88 updates left at the beginning of the delivery day
- At the end of the day, when most of the deliveries had been completed, the sync resumed and the 88 updates finally made it to the google sheet
What happened then is that when those 88 updates synced, they not only wrote the expected value in the one boolean column related to the workflow, but they also reverted all other columns to the values that were present in the sheet in the morning, erasing all traces of the deliveries that had happened throughout the day.
When the end-user of an app updates the value of a column, does the update write just that one column, or the whole row as it was before the update + the updated value in that column?