Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

need to add some built-in resilience #7

Open
sfertman opened this issue Nov 16, 2019 · 3 comments
Open

need to add some built-in resilience #7

sfertman opened this issue Nov 16, 2019 · 3 comments

Comments

@sfertman
Copy link
Owner

sfertman commented Nov 16, 2019

Open question right now:

  • what happens if atom tries to update and never succeeds?
    • gotta add option for max number of retries before giving up entirely
  • what happens if connection to redis is lost? timed out?
    • need to handle those cases gracefully so user has clean api and no surprises
  • what happens if something goes wrong in mid transaction? what are the options for rolling back?
    • redis has no ability to roll back multi/exec transactions -- something like this is beyond the scope of this project and probably belongs in refs territory.
@sfertman
Copy link
Owner Author

sfertman commented Nov 22, 2019

Behaviour will be controlled by an additional :option parameter that may be passed to the constructor. By default will be exactly like clojure atom, for better and for worse.

@sfertman
Copy link
Owner Author

take a look at https://github.com/resilience4clj for inspiration

@sfertman
Copy link
Owner Author

TODO:

  • cas max retries
  • cas timeout
    • type of timeout evolution? const, linear, exponential
  • swap timeout

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant