This would show the last known table schema and data that was shown, but would allow to make records and sync when the mobile device comes back online. Issues would be resolved via the web to validate issues.
- Home
- Community
- Legacy Product Ideas
- Legacy Product Ideas
- FR: Offline mode
FR: Offline mode
- April 12, 2016
- 219 replies
- 1 view
219 replies
- Known Participant
- 23 replies
- June 19, 2016
Yes, Offline Mode please!! I use databases to store gps waypoints, notes, images and all kinds of information about outdoor locations (many of which are outside of cell coverage) and although I love Airtable, in it’s present form it can’t be used for any data gathering outside of cell coverage. This would be greatly beneficial to outdoor enthusiasts, travelers, surveyors, disaster relief, restoration, construction, forestry, you name it- any type of activity that takes a person outside of cell coverage.
Here is one idea on how to accomplish this…
-User would have an “Offline” switch and the app would warn the user the device will download a full copy of the database to the local device which can be read, edited, etc but no table structures or relationships may be edited in offline mode. Only records can be read, edited and added in offline mode but table, form and field types are locked while offline.
-When connectivity is re-established, an integrity check would be done to ensure that the table structures and relationships have not changed (by other users that were online) since the user went offline. If architecture has changed, user is presented with a choice to either make a copy of the device data with the prefix “syncconflict_” or ask the user if they want local device data replaced with the current server structure and data.
In any case, I really hope Airtable implements an Offline Mode as soon as possible. It would make this app so much more userful for so many types of businesses, organizations and activities that do not necessary have data coverage 100% of the time.
- New Participant
- 2 replies
- July 3, 2016
I need the offline modus too!!! I can’t use Airtable without it :frowning:
- New Participant
- 1 reply
- July 7, 2016
My Idea is to have encapsulated snapshots backed up to your device and viewable with a user defined update point.
- Known Participant
- 23 replies
- July 8, 2016
agreed, and there are multiple requests for offline mode but unfortunately they are all fragmented all over the site. we need to combine our requests into a single Offline Mode feature request that everyone can get on board with, to maximize visibility to this. I will say, Airtable has replied to me personally and said this is in their plans, but no indication of when it may be available. If lots of people need it, it may help to move it up the priority list.
- New Participant
- 2 replies
- July 12, 2016
Yes! Offline access!
- Participating Frequently
- 6 replies
- July 12, 2016
+1
the use cases are plentiful.
For example in film production there are many potential uses, from locations to shot lists and script / continuity.
And we’re often working on remote locations, in basements, etc. where mobile coverage is bad or nonexistent.
- Participating Frequently
- 9 replies
- July 25, 2016
Most definitely the most useful feature to be able to work offline. Right now, when the internet connection is not good, it takes too long to upload databases especially when it gets large.
Airtable is the most used app, because I have so much information on it. Not able to work offline is an impediment.
- Known Participant
- 16 replies
- July 27, 2016
Yes, our business would be in ruins if (knock on wood) we ever have data issues. +1 for this feature.
- Participating Frequently
- 9 replies
- July 27, 2016
Most definitely the most useful feature to be able to work offline. Right now, when the internet connection is not good, it takes too long to upload databases especially when it gets large.
Airtable is the most used app, because I have so much information on it. Not able to work offline is an impediment.
Just when I wanted to find something, there is no data, or very slow data. OFFLINE is a must for databases. Really appreciate it.
- New Participant
- 2 replies
- August 9, 2016
agreed, and there are multiple requests for offline mode but unfortunately they are all fragmented all over the site. we need to combine our requests into a single Offline Mode feature request that everyone can get on board with, to maximize visibility to this. I will say, Airtable has replied to me personally and said this is in their plans, but no indication of when it may be available. If lots of people need it, it may help to move it up the priority list.
Another vote here for offline access. Airtable appears to be a wonderful database but not having access while offline is a deal-breaker for me.
- New Participant
- 1 reply
- August 16, 2016
Another vote here for offline access. Airtable appears to be a wonderful database but not having access while offline is a deal-breaker for me.
I agree with almost every offline request and purpose 100%. No offline access, has been at the top of my “deal-breaker” list for as long as I have had a “deal-breaker” list (at least a decade).
Since this app seems to be sooo incredible, I can’t help but to jump in at least knee deep, and start learning/using.
BUT I can not see ever using it for serious data storage and manipulation until offline access is a feature.
Thank you, for what you have offered to all of us, so far. It is a beautiful piece of software and iOS app!
- Known Participant
- 23 replies
- August 18, 2016
I agree with almost every offline request and purpose 100%. No offline access, has been at the top of my “deal-breaker” list for as long as I have had a “deal-breaker” list (at least a decade).
Since this app seems to be sooo incredible, I can’t help but to jump in at least knee deep, and start learning/using.
BUT I can not see ever using it for serious data storage and manipulation until offline access is a feature.
Thank you, for what you have offered to all of us, so far. It is a beautiful piece of software and iOS app!
another bump for offline mode. devs- please note that there are two separate threads full of users requesting this so if you search for “offline” you will find all the requests. this is more popular and critical than it may appear at first glance. i know you have this in your plans but i hope the priority will be stepped up. thanks!
- Known Participant
- 23 replies
- August 26, 2016
soon to come i hope?
- New Participant
- 1 reply
- August 28, 2016
Just started to use Airtable yesterday and found this app just fantastic… until I realized it is not usable offline. This is unfortunately a show stopper for me.
I travel a lot around the world for work and wanted to use Airtable as a resource center for many info I need to have on hand all the time.
Unfortunately in my case roaming cost can quickly become a huge hurdle…
- New Participant
- 2 replies
- August 30, 2016
I second (or… 32nd) this feature request.
Until cellular service is universal and unbroken (100-300 years from now), Airtable will only be a truly mobile-friendly solution when it is available for viewing (at least) and editing (ideally) offline.
- Known Participant
- 23 replies
- August 31, 2016
I second (or… 32nd) this feature request.
Until cellular service is universal and unbroken (100-300 years from now), Airtable will only be a truly mobile-friendly solution when it is available for viewing (at least) and editing (ideally) offline.
agreed 1000 percent…
- New Participant
- 2 replies
- September 6, 2016
I wish AirTable would issue some type of stance on offline access for mobile devices. I don’t want to waste my time reading emails and forums for this software if offline access isn’t on the table. The software is unusable to me without it.
AirTable, is offline access for mobile devices in the works anytime soon?
- Known Participant
- 33 replies
- September 7, 2016
Plus one for offline mode, especially now since there is a desktop version of the app. I would expect that the desktop version would act similarly to ever note’s desktop app which keeps everything local for offline use, but then syncs to the cloud version to update. Right now, the desktop version seems to be almost identical to the web app, but offline mode would be a big differentiator.
- New Participant
- 2 replies
- September 7, 2016
Airtable needs an offline mode (similar spotify e.g.)
I can’t work with airtable when my device is disconnected. I don’t can see my tables, no editing, nothing can I do in this case.
- Inspiring
- 332 replies
- September 8, 2016
Hi, everyone! First off, we hear you loud and clear on the desire for offline mode. We’ve spent much time internally exploring the possibility of offline mode (and even building some prototypes), but it’s a fundamentally difficult feature to build. Since Airtable is a collaborative product, an ideal offline solution would need to gracefully handle merge conflicts, and do so in the context of Airtable’s relational data structure and rich field types. For comparison, Google Docs uses an approach termed operational transforms, but this only works on simpler data structures (i.e. a Google word document is represented as a single long string of text, and a spreadsheet is represented as a shapeless 2-dimensional array of cells).
As we continue to explore the tradeoffs for various implementations of offline mode, it would be very useful for our team to get some detailed feedback from dedicated Airtable users like yourselves about why and how you would like offline to be designed. Just a sampling of potential things to think about:
- How would you want to use Airtable offline? Tell us your story. Are you a world traveler, wanting to find a way to look at your elaborately designed base of sightseeing spots without having to pay exorbitant roaming charges? Are you a construction baron, sending out remote workers to to survey your newly acquired plots of land? Are you a deep sea diver on a solo expedition in the Marianas Trench, logging undiscovered species of hagfish on the ocean floor? Do you just have really terrible WiFi in the boiler room under the stairs, where the boss moved your office?
- Do you use Airtable alone, or with collaborators? (Resolving merge conflicts when someone is the sole collaborator on a database is far simpler than doing so when you have multiple collaborators, some of whom are online and some of whom are offline, and all of whom are editing different things.)
- How much do you need to be able to do in Airtable while offline? Do you just need a read-only version of the contents of your bases that you can access while offline? Or do you need to have the ability to edit the contents of records while offline? Or do you need to have the ability to change the database schemata while offline? (In order, these are: comparatively simple to implement; difficult to implement; incredibly difficult to implement.)
- For how long do you need to be able to use Airtable offline? For a few minutes, as you drive through a tunnel? (Please don’t Airtable and drive.) For a few hours, as you sit in an airport terminal and refuse to pay for overpriced WiFi? For a few weeks, as you trek through the farthest reaches of frigid Nunavut?
- How tolerant would you be of having to resolve merge conflicts manually? One potential way of alleviating the issues that arise with resolving merge conflicts is to force end users to make decisions on how to solve specific conflicts. This, however, comes with its own set of potential problems (e.g. being stalled by having to resolve a merge conflict when all you want to do is work, your co-workers getting mad that you merged over their data without their permission).
- Would you primarily be using offline mode on desktop or mobile? Anecdotally, it seems like many of the people who want offline mode want it for mobile, but it would be good for us to get some clarification on that front.
- New Participant
- 1 reply
- September 9, 2016
How would you want to use Airtable offline? I’m a wedding photographer! I want to use Airtable at wedding fairs, expos, and events to create a database of couples that I talk to - I create a personal CRM-type form as I go, and I don’t always have internet.
Do you use Airtable alone, or with collaborators? I use it alone!
How much do you need to be able to do in Airtable while offline? Mostly, I’d like to be able to create records and then edit those records.
How tolerant would you be of having to resolve merge conflicts manually? VERY tolerant. As long as I knew it before I went offline, it’d be way worth it to still have the offline option. If someone wasn’t up for that, they could just choose not to use the offline features.
Would you primarily be using offline mode on desktop or mobile? Mobile! I use it on my ipad for this.
- Known Participant
- 23 replies
- September 9, 2016
Hi, everyone! First off, we hear you loud and clear on the desire for offline mode. We’ve spent much time internally exploring the possibility of offline mode (and even building some prototypes), but it’s a fundamentally difficult feature to build. Since Airtable is a collaborative product, an ideal offline solution would need to gracefully handle merge conflicts, and do so in the context of Airtable’s relational data structure and rich field types. For comparison, Google Docs uses an approach termed operational transforms, but this only works on simpler data structures (i.e. a Google word document is represented as a single long string of text, and a spreadsheet is represented as a shapeless 2-dimensional array of cells).
As we continue to explore the tradeoffs for various implementations of offline mode, it would be very useful for our team to get some detailed feedback from dedicated Airtable users like yourselves about why and how you would like offline to be designed. Just a sampling of potential things to think about:
- How would you want to use Airtable offline? Tell us your story. Are you a world traveler, wanting to find a way to look at your elaborately designed base of sightseeing spots without having to pay exorbitant roaming charges? Are you a construction baron, sending out remote workers to to survey your newly acquired plots of land? Are you a deep sea diver on a solo expedition in the Marianas Trench, logging undiscovered species of hagfish on the ocean floor? Do you just have really terrible WiFi in the boiler room under the stairs, where the boss moved your office?
- Do you use Airtable alone, or with collaborators? (Resolving merge conflicts when someone is the sole collaborator on a database is far simpler than doing so when you have multiple collaborators, some of whom are online and some of whom are offline, and all of whom are editing different things.)
- How much do you need to be able to do in Airtable while offline? Do you just need a read-only version of the contents of your bases that you can access while offline? Or do you need to have the ability to edit the contents of records while offline? Or do you need to have the ability to change the database schemata while offline? (In order, these are: comparatively simple to implement; difficult to implement; incredibly difficult to implement.)
- For how long do you need to be able to use Airtable offline? For a few minutes, as you drive through a tunnel? (Please don’t Airtable and drive.) For a few hours, as you sit in an airport terminal and refuse to pay for overpriced WiFi? For a few weeks, as you trek through the farthest reaches of frigid Nunavut?
- How tolerant would you be of having to resolve merge conflicts manually? One potential way of alleviating the issues that arise with resolving merge conflicts is to force end users to make decisions on how to solve specific conflicts. This, however, comes with its own set of potential problems (e.g. being stalled by having to resolve a merge conflict when all you want to do is work, your co-workers getting mad that you merged over their data without their permission).
- Would you primarily be using offline mode on desktop or mobile? Anecdotally, it seems like many of the people who want offline mode want it for mobile, but it would be good for us to get some clarification on that front.
Hi Katherine, I am going to respond to your questions but I also want to ask a couple simple questions for you to consider too, that may help to find an offline solution quickly, with little or no modification to the way your servers currently process requests from collaborators…
-How does Airtable CURRENTLY handle collaboration between users when changes are made by UserA who is using a satellite internet connection at 2000 ms latency, and UserB who is using cable internet with 10-12 ms latency. For example; if a request is “timestamped” (with a UTC Universal Coordinated Time) by UserA’s device BEFORE UserB’s device, but the request from UserB arrives at Airtable’s server first due to lower latency, which request does Airtable process first if the request effects the same record?
-In the hypothetical circumstances described above, does Airtable notify either of the users of the conflict or does it simply overwrite the older change with the newer change and the users are oblivious to the conflict?
-Using the same hypothetical situation described above, now increase the 2000 ms latency to 900,000 ms (15 mins) and I assume the servers would process the requests the same way (provided that Airtable increased the allowed amount of latency between requests and did not reject the requests as being invalid, as I assume it does now). So now, using the same logic, if Airtable servers were programmed to “expect” and process requests with large amounts of latency, then couldn’t we increase this to any amount of time?
I am interested to know the answers to those questions, and then maybe we aren’t very far from making offline access a reality. Then when a user “toggles offline mode” or is “forced” offline by bad service, they can continue to work, knowing that as soon as they toggle back online, or when service becomes available again, their changes will be processed in the same way they would be otherwise.
Now I will respond to your questions…
-here are a few use cases; journal, fitness, vehicle maintenance, inventory, hiking, fishing, camping, navigating, road trips, travel, photography, geocache, contacts, tasks, you name it… databases are great for it but you can’t count on coverage being everywhere. we aren’t asking for this for the 99% uptime we have… we are asking because of the 1% downtime which can last from minutes (tunnel like you said) to days (camping trip or road trip or anything that takes you off the grid)
-most of the world and even most of the united states has incomplete and/or intermittent coverage (see attached), especially rural areas. i could (and have) listed many use cases as examples of why i need offline coverage but in the end, it comes down to… we need offline coverage regardless of whether we are using it for a glorious, enterprise solution that connects 1000 employees with contact data, product information and task management… or someone simply wants to keep track of their oil changes. big or small, complex or simple… if people are going to get on board with a database system they need to know it works under all internet conditions, not just the ideal ones. if airtable is going to be widely adopted (which i believe it can become) it needs to provide solutions for users in a wide variety of circumstances, not just those working in modern cities. some of this may come across rude but actually i hold you guys in high respect for what you have created; just remember your customer base could be much greater when everyone, including low income, rural, low bandwidth customers can all use airtable and recommend it to their friends and family.
- Known Participant
- 23 replies
- September 9, 2016
Hi, everyone! First off, we hear you loud and clear on the desire for offline mode. We’ve spent much time internally exploring the possibility of offline mode (and even building some prototypes), but it’s a fundamentally difficult feature to build. Since Airtable is a collaborative product, an ideal offline solution would need to gracefully handle merge conflicts, and do so in the context of Airtable’s relational data structure and rich field types. For comparison, Google Docs uses an approach termed operational transforms, but this only works on simpler data structures (i.e. a Google word document is represented as a single long string of text, and a spreadsheet is represented as a shapeless 2-dimensional array of cells).
As we continue to explore the tradeoffs for various implementations of offline mode, it would be very useful for our team to get some detailed feedback from dedicated Airtable users like yourselves about why and how you would like offline to be designed. Just a sampling of potential things to think about:
- How would you want to use Airtable offline? Tell us your story. Are you a world traveler, wanting to find a way to look at your elaborately designed base of sightseeing spots without having to pay exorbitant roaming charges? Are you a construction baron, sending out remote workers to to survey your newly acquired plots of land? Are you a deep sea diver on a solo expedition in the Marianas Trench, logging undiscovered species of hagfish on the ocean floor? Do you just have really terrible WiFi in the boiler room under the stairs, where the boss moved your office?
- Do you use Airtable alone, or with collaborators? (Resolving merge conflicts when someone is the sole collaborator on a database is far simpler than doing so when you have multiple collaborators, some of whom are online and some of whom are offline, and all of whom are editing different things.)
- How much do you need to be able to do in Airtable while offline? Do you just need a read-only version of the contents of your bases that you can access while offline? Or do you need to have the ability to edit the contents of records while offline? Or do you need to have the ability to change the database schemata while offline? (In order, these are: comparatively simple to implement; difficult to implement; incredibly difficult to implement.)
- For how long do you need to be able to use Airtable offline? For a few minutes, as you drive through a tunnel? (Please don’t Airtable and drive.) For a few hours, as you sit in an airport terminal and refuse to pay for overpriced WiFi? For a few weeks, as you trek through the farthest reaches of frigid Nunavut?
- How tolerant would you be of having to resolve merge conflicts manually? One potential way of alleviating the issues that arise with resolving merge conflicts is to force end users to make decisions on how to solve specific conflicts. This, however, comes with its own set of potential problems (e.g. being stalled by having to resolve a merge conflict when all you want to do is work, your co-workers getting mad that you merged over their data without their permission).
- Would you primarily be using offline mode on desktop or mobile? Anecdotally, it seems like many of the people who want offline mode want it for mobile, but it would be good for us to get some clarification on that front.
since i ranted and forgot to answer some of the questions, i will respond to those now…
How would you want to use Airtable offline?
[see previous reply] journal, fitness, hiking, camping, fishing, maintenance schedules, tasks, photography, apps and software database, contacts, inventory, messages, calendar events, gift ideas, and lots more. my ideas are mostly for personal use at the moment but i also work for a company that has branches all over the world and i am considering using airtable to coordinate on quotes, item data, contact info, and other things that are currently exchanged via complex spreadsheets (yuck).
Do you use Airtable alone, or with collaborators?
currently alone, but i would recommend it more to others and find more collaborative uses for it if were not dependent on internet connectivity which varies from place to place, home to home, business to business, and street to street.
How much do you need to be able to do in Airtable while offline?
create, edit and delete records, but not change table structure or relationships
How tolerant would you be of having to resolve merge conflicts manually?
tolerant, if the changes were presented in a concise, easy to read format with a simple “accept” or “reject” button for each change, each table, each base, or all changes.
Would you primarily be using offline mode on desktop or mobile?
primarily mobile (iphone), however i also use mac at home, windows at home, and windows at work, and browsers everywhere so all platforms are important.
hope this feedback helps!
- Participating Frequently
- 61 replies
- September 12, 2016
Hi Katherine, I am going to respond to your questions but I also want to ask a couple simple questions for you to consider too, that may help to find an offline solution quickly, with little or no modification to the way your servers currently process requests from collaborators…
-How does Airtable CURRENTLY handle collaboration between users when changes are made by UserA who is using a satellite internet connection at 2000 ms latency, and UserB who is using cable internet with 10-12 ms latency. For example; if a request is “timestamped” (with a UTC Universal Coordinated Time) by UserA’s device BEFORE UserB’s device, but the request from UserB arrives at Airtable’s server first due to lower latency, which request does Airtable process first if the request effects the same record?
-In the hypothetical circumstances described above, does Airtable notify either of the users of the conflict or does it simply overwrite the older change with the newer change and the users are oblivious to the conflict?
-Using the same hypothetical situation described above, now increase the 2000 ms latency to 900,000 ms (15 mins) and I assume the servers would process the requests the same way (provided that Airtable increased the allowed amount of latency between requests and did not reject the requests as being invalid, as I assume it does now). So now, using the same logic, if Airtable servers were programmed to “expect” and process requests with large amounts of latency, then couldn’t we increase this to any amount of time?
I am interested to know the answers to those questions, and then maybe we aren’t very far from making offline access a reality. Then when a user “toggles offline mode” or is “forced” offline by bad service, they can continue to work, knowing that as soon as they toggle back online, or when service becomes available again, their changes will be processed in the same way they would be otherwise.
Now I will respond to your questions…
-here are a few use cases; journal, fitness, vehicle maintenance, inventory, hiking, fishing, camping, navigating, road trips, travel, photography, geocache, contacts, tasks, you name it… databases are great for it but you can’t count on coverage being everywhere. we aren’t asking for this for the 99% uptime we have… we are asking because of the 1% downtime which can last from minutes (tunnel like you said) to days (camping trip or road trip or anything that takes you off the grid)
-most of the world and even most of the united states has incomplete and/or intermittent coverage (see attached), especially rural areas. i could (and have) listed many use cases as examples of why i need offline coverage but in the end, it comes down to… we need offline coverage regardless of whether we are using it for a glorious, enterprise solution that connects 1000 employees with contact data, product information and task management… or someone simply wants to keep track of their oil changes. big or small, complex or simple… if people are going to get on board with a database system they need to know it works under all internet conditions, not just the ideal ones. if airtable is going to be widely adopted (which i believe it can become) it needs to provide solutions for users in a wide variety of circumstances, not just those working in modern cities. some of this may come across rude but actually i hold you guys in high respect for what you have created; just remember your customer base could be much greater when everyone, including low income, rural, low bandwidth customers can all use airtable and recommend it to their friends and family.
CEO of Airtable here. Thanks everyone for your feedback so far!
I’ll address joshua_soule’s question, which I interpret as/distill into “can offline read/write access be thought of in the same way as online collaboration, but with exaggerated latency.” The answer is: not entirely.
Some Airtable user actions, such as editing a cell or creating/deleting new rows, are performed immediately on the client’s local data representation (see related concepts of “optimistic UI updating,” “optimistic concurrency,” and “eventual consistency”). Thus, they could theoretically be performed offline. In fact, you can do so today by disconnecting your internet connection without closing the browser tab or the iOS/Android app, making changes, then reconnecting—in absence of any conflicting changes from other clients, your offline edits should seamlessly sync.
The problem is that if changes are made from multiple clients simultaneously—whether by a team collaborator, or yourself from multiple offline devices—these clients increasingly diverge in their local states. In other words, if the Airtable server is the “real world,” each client gets more and more carried away with their imagination and starts to construct their own alternate reality. (Actually, this problem would remain even if you took away the Airtable server and instead made the system peer to peer, at which point you would have to grapple with consensus determination, which becomes increasingly complicated as the data model becomes more sophisticated, i.e. an entire relational database instead of simple numerical values).
Some amount of (or more accurately, “some types of”) divergence can be cleanly merged together: for instance, if you and I edit completely different cell values without making any other changes. In these cases, it’s obvious that our intended changes are completely independent of each other and can be trivially resolved. (For some very simple data structures, you can even construct a highly limited “world” where changes can always be cleanly merged together, but this doesn’t work for more sophisticated applications).
However, this isn’t always true. In some cases, our respective intents come into conflict. Within these cases, it’s sometimes still easy for Airtable to arbitrate our dispute and make a decision on what the outcome should be—in the case of two people overwriting the same cell value, the last edit received by the server wins. Note that for many cell types, Airtable’s behavior is actually a bit more advanced than “last-edit-wins”. For instance, if a multi select cell contains options Albatross and Buzzard, and you remove option Albatross from the cell (thus locally believing the resultant state to be Buzzard) while I simultaneously add option Cockatoo to the multi select cell (thus locally believing the resultant state to be Albatross, Buzzard, Cockatoo), Airtable actually resolves the resultant state to Buzzard and Cockatoo so that both of our intents are preserved, rather than simply clobbering one of our changes with the other .
Sometimes, though, there’s no clear way (not just for Airtable, but on a theoretical level) to resolve the conflicting intents—if one user changes a column, and another simultaneously changes values in the old column, for instance, it’s unclear what the human-desirable outcome is. One of the users’ intents must prevail (at least partially) over the other’s. This is where having 2 seconds of online latency is different from 2 days of latency (i.e. offline mode). With 2 seconds of latency, the most work you’ll lose or need to manually re-perform is 2 seconds. With 2 days of latency, you could potentially lose up to 2 days of work, as your subsequent changes could depend on the first change, which will be rejected. In other words, offline mode prevents you as the user from getting near-realtime feedback that a change being rejected due to another client’s conflicting changes, and instead lets you spiral increasingly into an invalid world of local state which becomes growingly impossible to resolve with the other clients’ world(s).
As far as I know, there are no database systems that gracefully handle all of the above problems. (Airtable is the first end-user relational database that handles fully realtime collaboration). We do believe this is an important feature, but there are necessarily tradeoffs to be made in its design. Your detailed feedback will help guide us to design the right tradeoffs.
- Known Participant
- 23 replies
- September 12, 2016
CEO of Airtable here. Thanks everyone for your feedback so far!
I’ll address joshua_soule’s question, which I interpret as/distill into “can offline read/write access be thought of in the same way as online collaboration, but with exaggerated latency.” The answer is: not entirely.
Some Airtable user actions, such as editing a cell or creating/deleting new rows, are performed immediately on the client’s local data representation (see related concepts of “optimistic UI updating,” “optimistic concurrency,” and “eventual consistency”). Thus, they could theoretically be performed offline. In fact, you can do so today by disconnecting your internet connection without closing the browser tab or the iOS/Android app, making changes, then reconnecting—in absence of any conflicting changes from other clients, your offline edits should seamlessly sync.
The problem is that if changes are made from multiple clients simultaneously—whether by a team collaborator, or yourself from multiple offline devices—these clients increasingly diverge in their local states. In other words, if the Airtable server is the “real world,” each client gets more and more carried away with their imagination and starts to construct their own alternate reality. (Actually, this problem would remain even if you took away the Airtable server and instead made the system peer to peer, at which point you would have to grapple with consensus determination, which becomes increasingly complicated as the data model becomes more sophisticated, i.e. an entire relational database instead of simple numerical values).
Some amount of (or more accurately, “some types of”) divergence can be cleanly merged together: for instance, if you and I edit completely different cell values without making any other changes. In these cases, it’s obvious that our intended changes are completely independent of each other and can be trivially resolved. (For some very simple data structures, you can even construct a highly limited “world” where changes can always be cleanly merged together, but this doesn’t work for more sophisticated applications).
However, this isn’t always true. In some cases, our respective intents come into conflict. Within these cases, it’s sometimes still easy for Airtable to arbitrate our dispute and make a decision on what the outcome should be—in the case of two people overwriting the same cell value, the last edit received by the server wins. Note that for many cell types, Airtable’s behavior is actually a bit more advanced than “last-edit-wins”. For instance, if a multi select cell contains options Albatross and Buzzard, and you remove option Albatross from the cell (thus locally believing the resultant state to be Buzzard) while I simultaneously add option Cockatoo to the multi select cell (thus locally believing the resultant state to be Albatross, Buzzard, Cockatoo), Airtable actually resolves the resultant state to Buzzard and Cockatoo so that both of our intents are preserved, rather than simply clobbering one of our changes with the other .
Sometimes, though, there’s no clear way (not just for Airtable, but on a theoretical level) to resolve the conflicting intents—if one user changes a column, and another simultaneously changes values in the old column, for instance, it’s unclear what the human-desirable outcome is. One of the users’ intents must prevail (at least partially) over the other’s. This is where having 2 seconds of online latency is different from 2 days of latency (i.e. offline mode). With 2 seconds of latency, the most work you’ll lose or need to manually re-perform is 2 seconds. With 2 days of latency, you could potentially lose up to 2 days of work, as your subsequent changes could depend on the first change, which will be rejected. In other words, offline mode prevents you as the user from getting near-realtime feedback that a change being rejected due to another client’s conflicting changes, and instead lets you spiral increasingly into an invalid world of local state which becomes growingly impossible to resolve with the other clients’ world(s).
As far as I know, there are no database systems that gracefully handle all of the above problems. (Airtable is the first end-user relational database that handles fully realtime collaboration). We do believe this is an important feature, but there are necessarily tradeoffs to be made in its design. Your detailed feedback will help guide us to design the right tradeoffs.
Hi Howie,
Thanks so much for taking the time to explain these obstacles in more detail. One solution comes to mind, but of course it has drawbacks like any other solution. I wonder if this might be a potential solution…
While still connected, a user may intentionally request (via toggle switch) to put a specific base in offline mode. In response to this request, the server notes the UserName and UTC timestamp of the request, sends a response back to the user’s device and the device makes a local copy and goes offline.
While offline, the user’s device prohibits structure changes to the base, such as addition or deletion of tables and fields, editing field types, formulas, relationship types, etc while offline. When the user requests to go back online, the device sends a copy of the base to the server, the server compares each table to existing tables and informs the user if any changes conflict with other user changes and if conflicts cannot be resolved via the timestamp and normal rules, then the server offers to export a summary of conflicts in the form of a common text file format (csv for example) containing the table names, record names and list of conflicts. The device should also include a warning message when the user makes the request to go offline, that offline usage carries some risks that incompatible changes could be made by other users while the device is offline and if that happens, a clean merge could become impossible when device goes back online. The user must acknowledge and accept the terms in order to enter offline mode. Maybe the base owner would also receive a copy of the request, or maybe just a summary of the conflicts, or none.
By making offline mode an intentional request, with a warning, and with specific limits, I think this would greatly decrease the chances of conflicts and offer a manual solution when conflicts did arise. If the offline user was not the base owner, maybe the base owner should receive the copy of the conflicts and decide what to do with them. Maybe the base owner could also accept / reject the requests to go offline. Or maybe the base owner just delegates users who are allowed to use offline mode, without further approvals. All just ideas that would definitely need fine tuning.
One last twist to this is that maybe other collaborators with edit rights can see a visual indicator when some users are working offline and popup a warning message if attempts are made to change structural and functional parts of the base, besides merely adding, deleting and editing data.
Thoughts?
Reply
Related topics
Linkedin Lead Gen Forms (Events) now requires you to specify an eventicon
How Do IWhat's New: 80 updated integrations for August 2024
LinkedIn Lead Gen Form error: We're having trouble loading 'Event' data. Internal Server Erroricon
TroubleshootingIssue with Linkedin Event Integrationicon
TroubleshootingTrouble Pushing a LinkedIn Lead to a GoTo Webinar Registrationicon
Troubleshooting
Most helpful members this week
- ScottWorld
23 likes
- Mike_AutomaticN
14 likes
- kuovonne
7 likes
- wperque
7 likes
- DisraeliGears01
5 likes
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.
Scanning file for viruses.
Sorry, we're still checking this file's contents to make sure it's safe to download. Please try again in a few minutes.
OKThis file cannot be downloaded
Sorry, our virus scanner detected that this file isn't safe to download.
OK