Description
Background:
Some plugins require storing data. For example, limit-count needs to keep track of originators of requests to limit how many requests the same client can send.
The plugin provides several data stores: local, Redis single node, and Redis cluster.
Now, other plugins that need to store data would also need to provide such configuration. Moreover, what if users want to store the data in MongoDB, Hazelcast, or in a plain SQL database?
Tasks:
- Introduce a Storage abstraction, on the same level as Upstream
- Create Storage concretions for local, Redis single node, and Redis cluster
- Migrate the limit-count plugin to use this abstraction
- If time allows, create a new plugin that uses this abstraction
- It time allows, create a new Storage implementation
Who is a Potential Mentor: Bozhong Yu, email: imbozhong@gmail.com and https://github.com/zaunist,
Difficulty: Normal
Project size: ~350 hours.