Hello everyone,
I was wondering if you can give me advice on when to use a Watcher versus a SyncedEnforcer.
My use case is a fastAPI REST service that spawns several workers, so using pycasbin library. No large volume of request and infrequent changes to policies. Policies are persited in a database using casbin_sqlalchemy_adapter.
Until now I have been using SyncedEnforcer and that seems to work fine for what I need. Then I started reading about Watchers and was wondering what the real difference between the two is given that they are both taking care of synchronizing policy changes.
Do I understand it correctly that a SyncedEnforcer is actively checking for updates (pull updates from db) while with a Watcher the Enforcers are subscribing to events (changes are pushed to enforcers)? And that in high volume setups the Watcher might be more performant? Or is there some other benefit of Watchers that I am missing?