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

Request Tracking #13

Open
ricejasonf opened this issue Apr 2, 2016 · 1 comment
Open

Request Tracking #13

ricejasonf opened this issue Apr 2, 2016 · 1 comment

Comments

@ricejasonf
Copy link
Owner

For applications, the typical use case is such that the user makes a request (upstream message) and expects to know its status at any given moment. For access points that don't opt out of this, an additional store should be created that tracks requests by the message's UID. It's also possible to just use a single store to track all possible requests. It depends on how much we want to rely on the uniqueness of the locally generated UID.

This request tracking store should contain a variant that will likely have the following possible states:

  • unresolved (pending)
  • success
  • error
  • validation_fail (would contain a special object with messages)

Note that if the local state changes and would emit a downstream message, the request should be marked as resolved.

Note that there needs to be a way to know when to delete the tracking object from the store.

Note that the need for request tracking only applies to Create, Read and Update actions.

@ricejasonf
Copy link
Owner Author

Stores now receive messages from other paths via nbdl::apply_foreign_action. Request tracking could probably be implemented as a single store if the validation_fail object was somehow agnostic of the type of object it validated. (or it was a nbdl::variant of all the types of entities' validation result objects)

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

No branches or pull requests

1 participant