Comments (2)
some quick feedbacks
Messages flowing through the Graphcast network on the
subgraph-radio
pubsub topic
subgraph-radio
is not a pubsub topic, it is part of a content topic
The GraphQL API provides a lot of useful query options, it has its limitations, after all it can only serve data that's readily available to the Radio (in other words - data that is saved locally).
This limitation isn't true; there are existing resolvers that query network subgraph (basic indexer info) and we used to do computations upon query requests, which was improved through persisting states.
user is still unable to identify those senders by their display name or Indexer URL, for instance. To do that, the user would have to send more request to the Network subgraph GraphQL endpoint.
This point can be easily resolved through adding the desired fields in our existing queries to the network subgraph, or a new variant of the existing query that includes display name and url.
Sending graphql requests to the Radio's internal GraphQL endpoint, for more custom and/or complex queries if needed
Sending graphql requests to the Core Network and Registry Subgraphs to get more detailed sender data
There's existing graphql playground interfaces for radio and the subgraphs. I'm failing to see understand why this should be part of the subgraph radio FE.
If there should be an aggregated place for making graphql requests, it might be out of scope here.
Interfacing with other parts of the Indexer stack like Graph Node endpoint(s), Indexer Agent, etc
Could you provide an example of how to use this
Sending messages
What kind of messages? How is this different from graphcast-web?
Changing the Radio's configurations on the fly
This can be implemented independently; indexer can use the API to update a config and doesn't require a frontend.
Overall I think the problem statement can be solved without an FE. My main concerns being
- when do we expect an indexer to use the FE?
- If we know the type of info they might be interested in, why not have the radio operator automatically generate it and send it through notification?
- Does it really make sense for a radio to have a grafana dashboard, a http server with restful and graphql APIs, notifications, and a separate frontend?
- A listener radio frontend makes more sense to me as a page of graphops explorer
- It would be good to have a mermaid diagram demonstrating how the frontend is expected to interact with existing components of the radio/sdk, as well as initial sketches of what you think the initial page should look like.
from subgraph-radio.
Good points @hopeyen
when do we expect an indexer to use the FE?
I'd expect Indexers to use the FE the same way they'd use the frontend view of poifier, when they want a more interactive and feature rich environment compared to the Grafana dashboard. It makes interacting with all of the other Radio components a lot easier, can be a "one stop shop", and can reduce a lot of manual workflow on the user's side, as well as make the flow a whole lot easier. Generally it could aid user experience a lot.
Does it really make sense for a radio to have a grafana dashboard, a http server with restful and graphql APIs, notifications, and a separate frontend?
Nothing wrong with multiple options of interacting with/monitoring the Radio I think, different users will have different preferences.
A listener radio frontend makes more sense to me as a page of graphops explorer
Yes, for aggregated data meant for the explorer, having a listener Radio running somewhere and querying its GraphQL endpoint, then visualising that on the explorer, seems like the best option. The Subgraph Radio frontend would help us on that front as well because we would undergo a similar effort here (fetching data from a Radio's GraphqQL endpoint and visualising it, with options for users to customise the views)
If we know the type of info they might be interested in, why not have the radio operator automatically generate it and send it through notification?
This can be harder to customise on the user's end compared to a frontend, it can also be a one-time thing and might not require a scheduled notification
What kind of messages? How is this different from graphcast-web?
It is very different because our "flagship" implementations of Graphcast and Subgraph Radio will always be in Rust, we would much rather use the Radio (that's already running) to send messages via a web interface using this frontend, compared to graphcast-js. Graphcast-js is for cases where an underlying Rust-based Radio isn't there.
Could you provide an example of how to use this
This can be as simple as just fetching and visualising data from them that might be relevant to Subgraph Radio
This can be implemented independently; indexer can use the API to update a config and doesn't require a frontend.
Agreed, but as with other things - a frontend makes it easier for the user.
There's existing graphql playground interfaces for radio and the subgraphs. I'm failing to see understand why this should be part of the subgraph radio FE.
If there should be an aggregated place for making graphql requests, it might be out of scope here.
We don't want to have "an aggregated place for making graphql requests", but we can alleviate the need of users having to construct their queries in the graphql playground(s) every time if we identify useful repeating queries, we can fetch and provide that data upfront (this can also be customised through the frontend).
This point can be easily resolved through adding the desired fields in our existing queries to the network subgraph, or a new variant of the existing query that includes display name and url.
This is fair. That way we can avoid needing multiple queries both on the GraphQL playground and in the frontend.
subgraph-radio is not a pubsub topic, it is part of a content topic
Ah my bad, that's more proper wording indeed.
This limitation isn't true; there are existing resolvers that query network subgraph (basic indexer info) and we used to do computations upon query requests, which was improved through persisting states.
I agree it's not true as far as the Radio's internal operations are concerned, but I think it still is when we consider what users can query for on the existing GraphQL endpoint.
from subgraph-radio.
Related Issues (20)
- Add metrics to GraphQL API
- Update to Autometrics version 1.0.0 and utilise it for average processing time metric
- Tracking: Payne
- Memory leak HOT 6
- [Feat.Req] Watch mode
- [Feat.Req] Add query for current POI state
- [Feat.Req] Differentiate between offline and on-chain Subgraphs in Grafana Dashboard
- unexpected messaging frequency
- Failed to save local attestation. SQLx error: database is locked
- Indexer address validation failed HOT 4
- SubgraphDeployment struct
- Refactor: periodic pulling network data
- Investigate memory usage HOT 4
- Get to the bottom of all the memory leaks HOT 5
- Support sending Subgraph size as message field HOT 1
- Error adding remote ppoi message to database HOT 2
- Update docs to include latest subgraph information (GNS IDs, links, etc)
- [Feat.Req] Primary and backup configs
- [Feat.Req] Migrate to public proof of indexing query instead of private proof of indexing method
- Consider replacing upx in docker builds with custom rust compiler settings.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from subgraph-radio.