Replies: 2 comments
-
Hi @lupeterm Thanks for starting a conversation. You make a good point. Managing redundant tuples is an important consideration. The main concern with building this validation into the Write API is the significant performance and operational complexity it would introduce. As you noted, this would directly impact write performance. To enforce such a rule, every Write would effectively require a preceding Check to validate if the relationship already exists indirectly. This would add significant latency to a critical path. There's also a more complex issue when the authorization model changes over time. Consider this scenario:
Now, I think a better idea may be a "clean up" tool. An offline tool could periodically audit and remove redundant tuples. This would provide these benefits:
|
Beta Was this translation helpful? Give feedback.
-
Hi @dyeam0 Thanks for replying! Your point is absolutely correct. However, you're talking more about the redundancy of edges, while I (at least intended) to talk more about avoiding non-redundant, but "useless" edges. I guess my primary motivation is my initial confusion that I can create edges where the logical term in the relation definition evaluates to The clean-up tool seems like a great idea that would solve both of our problems 👍 |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Hi all,
Lets assume this small example:
The idea is that a group can host an event, which is only visible to their respective members. Additionally, interested members can decide to follow this event to get updates etc.
It is currently possible to create the edge
user:tom follower event:party
, even iftom
is not a member from the group.This has little to no semantic effect. as checking if
tom
is afollower
ofparty
would return false because the unsatisfied member relation.However, this feels a little counter-intuitive - Why would it be possible to create the
follower
edge for someone if they don't satisfy the somewhat "preceding" relation?I realize this would likely decrease the performance of write's but maybe there is an alternative that I've missed that avoids the insertion of unnecessary edges without killing performance?
Beta Was this translation helpful? Give feedback.
All reactions