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

Fault-tolerance #2

Open
giannifiore opened this issue Jan 12, 2022 · 0 comments
Open

Fault-tolerance #2

giannifiore opened this issue Jan 12, 2022 · 0 comments

Comments

@giannifiore
Copy link
Contributor

User Stories

As a web server developer,
I want the middleware to not cause my server to crash unexpectedly,
So that I can make sure the server tolerates Rebrandly downtimes and errors

Acceptance tests

[should tolerate unexpected failures and silently fallback to the basic flow]
Given a router ROUTER
Given that the middleware MW is installed on ROUTER,
Given that the middleware includes a bug causing it to halt,
Given a request REQ generally causing MW to be launched,
When request REQ is processed by ROUTER,
Then the exceptions generated in MW do not halt the global routing

[should tolerate bad tokens]
Given a router ROUTER,
Given that the middleware MW is installed on ROUTER,
Given that the authentication token for MW is wrong,
When router is created upon server launch,
Then MW would print a warning without causing the global router setup crash
Then MW would produce no effects (no-op) on the global routing

[should tolerate corrupted options]
Given a router ROUTER,
Given that the middleware MW is installed on ROUTER,
Given that the options for MW are not consistent with supported options,
When router is created upon server launch,
Then MW would print a warning without causing the global router setup crash
Then MW would produce no effects (no-op) on the global routing

@giannifiore giannifiore added this to the Stable version milestone Jan 12, 2022
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