This message was deleted.
# opal
s
This message was deleted.
a
Hi @Abdullah Al Rifat if you are triggering the updates manually you can specify an update id and then you can use the callbacks mechanism to report back if the update was successful. In any case each update is applied atomically.
a
the main concern of mine is i want OPAL client to pull changes in canary manner, i mean let's assume i push some changes on the repo and all the opal clients that subscribed to that repo will almost instantly pull the changes but i want opal clients to pull changes one by one and monitor while opal client update OPA so that i can revert if i see any error in the process. so i want to know if there is any way i can regulate opal-client behaviour so that if 5 opal-client connected to a opal-server i want opal-client1 to pull changes first monitor it updating OPA then if there is no error i will go to opal-client2 and if there i can see error spikes in grafana board i will revert the changes.
a
Hey @Abdullah Al Rifat we don’t have a canary feature yet. But we would appreciate you either contributing the feature, or helping us understand the requirements (and we can add it to the opal roadmap)
You can however simulate that with different topics and callbacks. Have a canary topic. Push the updates there first and monitor the callbacks. If all good, push to the production topic.
o
You can write a custom data fetcher, and send updates to it over this canary topic
In the custom data fetcher you can implement any arbitrary logic, including waiting on another service
a
from opal-server when it pull changes from repo can i point it to specific topic like only clients listen to that topic will pull changes from repo?
o
Yes, that's done via the
OPAL_POLICY_SUBSCRIPTION_DIRS
var
This maps directories in the git repo to specifc topics
You can also use OPAL scopes to map different clients to different repos all together https://docs.opal.ac/overview/scopes
a
inside opal-client if i want to revert back to the old policy/data after pulling and applying new changes is it possible? can you redirect me to the correct codebase?
o
Assuming you're using Git - Reverting to policy is the same as pushing the old version onto tracked the tracked branch. Same is true with data, via data update events.