-
-
Notifications
You must be signed in to change notification settings - Fork 158
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
Support for protobuf schemas #966
Comments
Sidenote: I love what you guys are working on. Debugging large-scale EDA systems is incredibly painful and the primary way to simplify that process is through good documentation. Even without protobuf support, EventCatalog makes sense simply to allow visualizing flows. |
@dselans shall we find some time to catch up on this and dive abit deeper? |
Unfortunately looks like support for Might need an alternative approach (and run into all those import-related issues we discussed on the call, @boyney123 ). |
It is possible but it's fairly gross. Looks something like this:
This requires you to download |
Hmm yeah thanks for looking into it! Would would be the preferred way to do it? Could we write the code in Go, create a binary as call this from Node? Not ideal, but maybe something like could work in this case? |
Use Case
Our events are defined as Protobuf and reside in an
events
repo. For example: https://github.com/streamdal/streamdal/tree/main/libs/protos/protosServices consume and publish protobuf encoded events to and from RabbitMQ.
It would be really useful if the protobuf events and their structure would be exposed/visible in EventCatalog - that would remove the need to manually inspect the proto definitions in the repo.
Proposed Solution
Optimally, EventCatalog had some sort of an integration that allows me to specify a
protoset
file that EventCatalog will process during build time and convert that to EventCatalog event definitions.A protoset file is basically a serialized representation of compiled protobuf (
.proto
) definitions, stored in a binary format.It is useful because it encapsulates all the schema information—including message types, fields, and services—into a single file that can be programmatically loaded and interpreted at runtime.
I've seen other projects add
protobuf
"support" by ingesting.proto
files but this is almost always riddled with import/path-related problems, package resolution problems and so on.The
protoset
approach completely eliminates this, as you have a single, self-contained binary that includes all the compiled.proto
definitions, eliminating the need to handle import paths or resolve packages manually. This ensures seamless integration and avoids the common pitfalls associated with parsing raw.proto
files.Implementation Notes
I am not that familiar with how EventCatalog handles this for other formats but I did see in the demo/example different
.avro
files being located next to different services.I do not think this is the correct approach for protobuf - even though it is possible, it will be painful because non-trivial
.proto
event definitions usually span multiple files (and trying to piece them together is not a good idea).Community Notes
The text was updated successfully, but these errors were encountered: