[ 
https://issues.apache.org/jira/browse/COMDEV-455?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Bobur Umurzokov updated COMDEV-455:
-----------------------------------
    Description: 
*Background:*

Some plugins require storing data. For example, 
[limit-count|https://apisix.apache.org/docs/apisix/plugins/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: 
[imbozh...@gmail.com|mailto:imbozh...@gmail.com] and  
[https://github.com/zaunist,|https://github.com/zaunist]

 

*Difficulty:* Normal
*Project size:* ~350 hours.

  was:
*Background:*

Some plugins require storing data. For example, 
[limit-count|https://apisix.apache.org/docs/apisix/plugins/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, https://github.com/zaunist

 

*Difficulty:* Normal
*Project size:* ~350 hours.


> Apache APISIX:  Introduce a Storage abstraction
> -----------------------------------------------
>
>                 Key: COMDEV-455
>                 URL: https://issues.apache.org/jira/browse/COMDEV-455
>             Project: Community Development
>          Issue Type: New Feature
>          Components: GSoC/Mentoring ideas
>            Reporter: Bobur Umurzokov
>            Priority: Major
>              Labels: APISIX, full-time, gsoc2022
>
> *Background:*
> Some plugins require storing data. For example, 
> [limit-count|https://apisix.apache.org/docs/apisix/plugins/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: 
> [imbozh...@gmail.com|mailto:imbozh...@gmail.com] and  
> [https://github.com/zaunist,|https://github.com/zaunist]
>  
> *Difficulty:* Normal
> *Project size:* ~350 hours.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@community.apache.org
For additional commands, e-mail: dev-h...@community.apache.org

Reply via email to