-
Notifications
You must be signed in to change notification settings - Fork 161
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Extensions, plugins, extra functionality #75
Comments
This is what I quickly came up to. There could be extension that internally works with plugin system etc as well. All gRPC commands (proto files) would be best to be in specified nostr-rs-relay protocol, even in separate repo so whatever language/framework you use you just clone it and build your types. I don't do UMLs so forgive me, it was just spontaneous diagram. |
I guess default 'policy' for |
Further, extension can conform to some protocol (must have |
This has the advantage of not blocking the writing thread, and even letting events get temporarily held or quarantined for further review; but the downside of just being more complex. We could always build this in later or optionally, by sending events to the outflow, and then putting the back on the event writer channel once they are sent to inflow; so this could be a separate option for externalized event handling for more complex workflows. I say we stick with the simple option for now. Is this something you are willing/able to build, or just a suggestion for me to implement? If it was done as an isolated chunk that intercepted and reconstituted the event stream in one place, i'd be willing to merge I think. |
Will try to hook it, need some time to look into code. |
Hi,
@scsibug is currently working on gRPC 'bypass', handling of events depending on many factors (IP, request, content data).
I decided to comment here as there are born very nice features:
#64
#71
IMHO gRPC will be the best place where they can be implemented as a (micro)service, extensions/plugins.
This have many advantages:
We all want: spam filtering, pay-to-relay, relay bots, connections with external systems and many other things, in the long run it's not possible to implement all features everybody want in the core relay, will make maintaining harder or almost impossible.
With KISS we just got gRPC event with request data passed by, simple quick relay startup and config, the rest is per extension/plugin/(micro)service.
The text was updated successfully, but these errors were encountered: