You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The client.jobs mechanism is used for updating revocation witnesses. This mechanism is not very stable, given the StartJobs() and PauseJobs() logic built to prevent certain tasks from running in parallel. This indicates a code smell due to the absence of locking on specific variables that require it.
Current issues with the jobs mechanism include:
Jobs are created in the scheduler from the configuration, indicating module coupling, which is undesirable.
If jobs are paused because a session is taking place, the jobs queue grows. This results in the same task being executed multiple times in succession.
The logic for scheduling revocation jobs is complicated. It involves probability calculations, and the higher the probability, the more frequent the updates. We should consider to simplify this mechanism.
Note:
Consider delays caused by the update mechanism when doing an IRMA session. Ensure the user understands what is happening (UX impact) to avoid unclear waiting times.
For issuers/verifiers, there is an expectation that, for specific use cases, a revoked credential becomes almost immediately unusable
The text was updated successfully, but these errors were encountered:
ivard
changed the title
Tech dept: stability of irmaclient.Client.jobs mechanism
Tech debt: stability of irmaclient.Client.jobs mechanism
Dec 13, 2023
Related to #365
The client.jobs mechanism is used for updating revocation witnesses. This mechanism is not very stable, given the StartJobs() and PauseJobs() logic built to prevent certain tasks from running in parallel. This indicates a code smell due to the absence of locking on specific variables that require it.
Current issues with the jobs mechanism include:
Note:
The text was updated successfully, but these errors were encountered: