DiceDB / dice

DiceDB is a redis-compliant, reactive, scalable, highly-available, unified cache optimized for modern hardware.
https://dicedb.io/
Other
6.78k stars 1.07k forks source link

POC for Webhook Integration with GitHub or Another Service Using QWATCH #554

Open pratikpandey21 opened 2 months ago

pratikpandey21 commented 2 months ago

Description

Create a Proof of Concept (POC) demonstrating the integration of DiceDB with GitHub or another external service using webhooks to showcase real-time reactivity with the QWATCH command. The POC should be a concrete example illustrating how to set up and use DiceDB to receive and process webhook events, leveraging QWATCH to push client updates based on changes to the resultset triggered by these events.

POC Requirements:

Integration with GitHub/Another Service that supports Webhook integrations:

Demonstrate Real-Time Reactivity with QWATCH:

Example Placement and Documentation:

pratikpandey21 commented 2 months ago

Depends on #552 and #553

aashraybhandar1 commented 2 months ago

can i pick this up

lucifercr07 commented 1 month ago

@aashraybhandar1 assigned, thanks for contributing.

lucifercr07 commented 1 month ago

@aashraybhandar1 Dependent issues are closed now, please let us know if any details required.

aashraybhandar1 commented 1 month ago

Hey @lucifercr07 sorry was on vacation, just catching up on stuff. So as per my understanding

Will this be a correct understanding, that the role of this demo will just be try to push the output of the QWATCH command back via the webhook.? A couple questions

aashraybhandar1 commented 1 month ago

@lucifercr07 @pratikpandey21 would appreciate feedback on the previous comment. Thank You!

pratikpandey21 commented 1 month ago

Apologies for the delay @aashraybhandar1 .

Yes, your understanding is correct. If we can find a better application for webhook integration than GitHub, we can choose that as well.

Just to highlight, push real time updates is something that should be handled already by QWATCH.

And no persistence needed and one webhook should be enough for the demo.

arpitbbhayani commented 1 month ago

Hello @aashraybhandar1,

There has been no activity on this issue for the past 5 days. It would be awesome if you keep posting updates to this issue so that we know you are actively working on it.

We are really eager to close this issue at the earliest, hence if we continue to see the inactivity, we will have to reassign the issue to someone else. We are doing this to ensure that the project maintains its momentum and others are not blocked on this work.

Just drop a comment with the current status of the work or share any issues you are facing. We can always chip in to help you out.

Thanks again.

aashraybhandar1 commented 1 month ago

Hey @arpitbbhayani working on it haven't gotten much time yet but looking to make good progress over the weekend

aashraybhandar1 commented 1 month ago

Hey @lucifercr07 @pratikpandey21 so I was first trying to see how the QWATCH command works over HTTP. This is the steps I followed

I see no response in my postman console when I follow this steps, I was expecting this value to be displayed there. Is my understanding incorrect? Thanks

lucifercr07 commented 1 month ago

@aashraybhandar1 try below once.

curl --location 'localhost:8082/QWATCH' \                      
--header 'Content-Type: application/json' \
--data '{
    "query": "SELECT $key, $value WHERE $key LIKE \"match:100:*\" AND $value > 100 ORDER BY $value DESC LIMIT 3"
}' --no-buffer
aashraybhandar1 commented 1 month ago

I have been exploring options for webhook integrations,

Do we explicitly need to set up a third party webhook? Can we explore the option of setting up a lightweight node server where we push events to. Does the below flow sound like something which would match the goals for this POC

@pratikpandey21 @lucifercr07 . Looking forward to your comments. Thank You!

aashraybhandar1 commented 1 month ago

@pratikpandey21 @lucifercr07 aplogies for the tag, doing incase you missed my previous comment. Thank You!

lucifercr07 commented 1 month ago

@aashraybhandar1 have you looked in Trello/Slack webhooks?

arpitbbhayani commented 3 weeks ago

Hello @aashraybhandar1,

There has been no activity on this issue for the past 5 days. It would be awesome if you keep posting updates to this issue so that we know you are actively working on it.

We are really eager to close this issue at the earliest, hence if we continue to see the inactivity, we will have to reassign the issue to someone else. We are doing this to ensure that the project maintains its momentum and others are not blocked on this work.

Just drop a comment with the current status of the work or share any issues you are facing. We can always chip in to help you out.

Thanks again.