Replies: 1 comment 2 replies
-
A link to a PR that would be a potential solution to point 5 above |
Beta Was this translation helpful? Give feedback.
2 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Background
Our system accepts submissions, and synchronously transmits data to seatool and kafka. Upon confirmation that those have been successfully transmitted, our application returns the user to the dashboard or details page, and shows a success banner. We do not wait for data to arrive back from kafka before returning the user.
This leaves a typical 3-5 seconds where the record displayed to the user is not reflective of the actual seatool info. Aside from the modal which (at least previously, i think language changed) says "it may take a minute or more for your change to be refected", there's no notice to the user that the record is in a transient state.
This dicussion is around how we can best mitigate that. I will list out an initial approach, and we can discuss and evolve from there. When we've got a decision, it will be pasted in a separate decision section.
Proposed Approach
Initial Update Status: When an action is initiated, immediately set an "updating" indicator to the user. This indicator should be visible before the api is called, and remain visible until the api returns. The purpose is to visually indicate to users that an action is currently being submitted. (exists... loading modal/spinner).
API Action flow: After a user submits an action, several things happen:
seatoolStatus
,stateStatus
, andcmsStatus
all set to "updating". This ensures immediate reflection of the update status in OpenSearch queries, eliminating any lag in status representation. (NEW)User Interface Feedback:
Completion of Update:
Ensuring Timely User Notification:
Advanced Real-time Updates (Optional):
By implementing these steps, users receive immediate feedback when records are being updated and are assured of a seamless experience as they interact with the system. The use of websockets, while optional, can further enhance this process by providing real-time updates to the user interface.
Beta Was this translation helpful? Give feedback.
All reactions