Skip to content

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

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

Move from proxies to well-defined adapters #380

Closed
grzuy opened this issue Aug 31, 2018 · 1 comment · May be fixed by #441
Closed

Move from proxies to well-defined adapters #380

grzuy opened this issue Aug 31, 2018 · 1 comment · May be fixed by #441

Comments

@grzuy
Copy link
Collaborator

grzuy commented Aug 31, 2018

An attempt to address #316

What?

  • Create a cache store Adapter interface, that defines which are the minimal set of methods that rack-attack needs to function properly.
  • Transform existing proxies into adapters, which implement the defined Adapter interface. E.g. "redis adapter", "memcache adapter".

Why?

End users benefits

  • More clear on what and what not to expect when reading/accessing Rack::Attack.cache.store
  • Less confusion when configuring rack-attack cache store backend
  • Less friction to introduce new cache store backends
    • Well-defined interface eases development and testing of new adapters
    • plus is easier for anyone to code and release new adapter as separate gem if they want, instead of being forced to get approval upstream

Contributors & Maintainers benefits

  • Easier to test
  • Easier to debug cache store issues
  • Easier to implement support for new cache store backends
  • Better maintainability in general
@grzuy
Copy link
Collaborator Author

grzuy commented Oct 25, 2019

Less friction to introduce new cache store backends

This benefit has been already addressed by #453

@rack rack locked and limited conversation to collaborators Jan 29, 2022
@grzuy grzuy converted this issue into discussion #568 Jan 29, 2022

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant