0

I have an app where certain data is stored in the database. Multiple users access the same set of data (similar of a collaboration tool). However, they can non deterministically work on stale data. For example, if there are three work tabs and someone is working on tab 1, it may not matter to him if tab 2 is modified. All CRUD operations are supported.

There are three different ways in which updates to the data can be communicated with the client apps:

  1. Notify all users on every change and force update the entire UI. (Easy to implement, extremely poor user experience)
  2. Notify all the users on change but only update the portion of UI that needs to be changed. (Complex to implement, optimal user experience)
  3. Notify on change, but don't update UI. Show exception only if there is an error in subsequent operations. (Easier to implement, can lead to suboptimal user experience)

What is a good architectural tool to implement this? So what I might be looking for is something like flux, but only distributed.

4
  • "However, they can non deterministically work on stale data" - what do you mean by this? I think you misunderstand what "deterministically" means...
    – Dai
    Commented Sep 25, 2021 at 0:00
  • The user is sending the data for processing. Even if the user sends data (a portion of which is stale), there is no guarantee that the process will definitely fail or definitely succeed. Conversely, the user can keep working on stale data hoping that his request won't fail. Commented Sep 25, 2021 at 6:23
  • That’s not what “deterministic” means…
    – Dai
    Commented Sep 25, 2021 at 17:28
  • Cool. So you understand what I actually meant. What is the solution you are proposing to the original question? Commented Sep 25, 2021 at 18:01

0

Browse other questions tagged or ask your own question.