Why is it the OPAL client and not the server which fetches data #218
-
I was looking at the OPAL architecture, and I was wondering why it's the responsibility of the OPAL client to fetch data when you have a server component which in a way also fetches data (if you think of the policy and data.json, in git as data). My concern is that the OPAL clients will each have to pull the same data from the data sources. In my mind it would make more sense architecturally to have the server component pull the data once, and bundle it with the policy from git. Could you enlighten me on this design decision? |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 2 replies
-
Hi @blacksails :) The answer is simple: privacy/security and realtime performance/scale
Hope this sheds some more light and hope it also makes some sense 😅 😇 |
Beta Was this translation helpful? Give feedback.
-
Thank you for the thorough reply. I had a look at the Styra DAS as well, but will probably test OPAL this week. |
Beta Was this translation helpful? Give feedback.
Hi @blacksails :)
I appreciate you coming in and asking :). It is, I think, one of the more subtle and interesting parts of the architecture.
The answer is simple: privacy/security and realtime performance/scale
This allows the server and client to run in seperate clusters, VPCs, and even clouds/networks - and the client can still have direct access to data-sources right beside it (such as the database of the app its serving authorization for). In Permit.io for example this allows the service to orchestrate everything from the cloud without being exposed at all to the customer's data.
OPAL is designed to be realtime in its delivery of updates (i.e. we want clients to know about change…