Skip to content
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

RFC - GitHub / GitLab Integration (Generator) with EventCatalog #930

Open
boyney123 opened this issue Nov 1, 2024 · 1 comment
Open

Comments

@boyney123
Copy link
Collaborator

boyney123 commented Nov 1, 2024

Hey folks,

This is a RFC (request for comments) for a generator that can integrate with GitHub or GitLab. There are a few ways to do this, and I was going to document an idea I had about it, and would love to see what you think, if this would be useful or not.

Overview

The generator will let you generate your EventCatalog from many different repositories you have. Each repository could have it's own /eventcatalog folder inside it. This folder can have domains, services or messages inside it. The repository will own it's own eventcatalog folders.

Benefits of this approach:

  • Each team can be responsible for their own catalog information
  • The catalog information can live next to the code
  • EventCatalog can pull in this data and give an overview of your architecture
  • Teams are responsible for their versioning.

github-rfc

When running EventCatalog (generators) in dev or build, it will fetch the information from GitHub/GitLab repos (tokens required and added to the config file).

EventCatalog will then:

  • Parse each folder in your repos
  • Create an EventCatalog for all your domains, services and messages

Questions still to explore:

  • How does versioning work? I guess the repo owners would version there own stuff, and these versions are just pulled into EventCatalog.

If you have any ideas or thoughts, I would love to hear them

@IsmaelMartinez
Copy link

A few questions more than answers:

  • if we are distributing the domains/services and/or messages, how do you deal with services that are from the same domain if the domain is defined multiple times?
  • Who defines the domain?
  • Do we need a config file that "explains" what domain/service do they pertain?
  • What about openAPI or asyncAPI specifications?

One way we can go about this is to distribute the generators configuration, and maybe create another generator for Markdown files. That way if a team wants to use Markdown files, other asyncAPI, or others, you don't force them to go down one route or the other.

Basically, distributing the "generators" what might be a different feature. And yes, this is similar to what compass does with their definition files, that seems to work ok. That would be following a pull model, so eventcatalog pulls the information from the repos.

Another option is to use a github action or gitlab catalog and "push" the changes to the eventcatalog. This might work better if/when eventcatalog has a server version that can consume events.

What do you think?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants