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

[ISSUE #435] Initial Creation of eventMesh-admin module in EventMesh #513

Merged
merged 8 commits into from
Sep 14, 2021

Conversation

yzhao244
Copy link
Contributor

@yzhao244 yzhao244 commented Sep 1, 2021

Fixes ISSUE #435 #346

Motivation

The purpose of this PR is for contributing eventmesh-admin module which includes initial draft of readme file for describing REST APIs

Modifications

A new eventmesh-admin is created along with a readme file includes REST APIs.

Documentation

  • Does this pull request introduce a new feature? no
  • If yes, how is the feature documented? readme
  • If a feature is not applicable for documentation, explain why?
  • If a feature is not documented yet in this PR, please create a followup issue for adding the documentation

Copy link
Member

@ruanwenjun ruanwenjun left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Need to discuss, whether we need to add a new control panel module

@qqeasonchen
Copy link
Contributor

@yzhao244 Glad to see you again, since this pr is to resolve #435 , i think you can add a new moudle like eventmesh-admin , and schema registry can be another pr.

@yzhao244
Copy link
Contributor Author

yzhao244 commented Sep 2, 2021

@qqeasonchen @ruanwenjun Yes, eventmesh-admin sounds a good idea. I will rework this PR to contribute eventmesh-admin module.

@yzhao244 yzhao244 changed the title [ISSUE #435] Schema Registry in EventMesh [ISSUE #435] Initial Creation of eventMesh-admin module in EventMesh Sep 2, 2021
@qqeasonchen
Copy link
Contributor

#346 #435 are supposed to included in this pr, but schemaregistry is not. or you can keep this pr on schemaregistry and launch another one for eventmesh-admin, up to you.

@yzhao244
Copy link
Contributor Author

yzhao244 commented Sep 3, 2021

@qqeasonchen I think you are right. Putting schemaregistry in this pr could be confusing. My thought was that schemaregistry may be a child module of the eventmesh-admin module. Therefore, I defined the schemaregistry REST APIs in the readme file of this commit. :)

@qqeasonchen
Copy link
Contributor

@yzhao244 thanks,about schemaregistry, @JunjieChou is working on this too, i suggest we discuss first to decide how to provide service, lonely or in runtime, is it ok? btw, if you have wechat, you can add eventmesh helper or we can have a online meeting.

@qqeasonchen
Copy link
Contributor

@yzhao244 @JunjieChou
Hi, i am trying to make it clear about admin and schemaregistry, so we can move on, if neccessary, we can schedule a meeting :

  1. ClientManageController.java can be moved to eventmesh-admin, and add topic/subscriptions management to it.
  2. SchemaRegistry is a seperate service out of eventmesh-runtime, eventmesh-schemaregistry can be a moudle in eventmesh, but star itself, not launched by runtime . eventmesh-runtime will interact with schemaregistry using schema-registry-api.

@yzhao244
Copy link
Contributor Author

yzhao244 commented Sep 7, 2021

@qqeasonchen @ruanwenjun @JunjieChou @jinrongluo
Hi Eason, I agree with you that leaving schema registry out of this PR for sure and yes schema registry can be a seperate service out of eventmesh-runtime.

@jzhou59
Copy link
Contributor

jzhou59 commented Sep 7, 2021

@yzhao244 @qqeasonchen @ruanwenjun
Hi, I see the discussion here.
From my point of view, I think we can compare schemaregistry to rocketmq.
What implemented in eventmesh is interactions with rocketmq, while not rocketmq itself. So does schemaregistry.
Anyway, it's my own consideration after referring openschema-spec and may not have taken all things into considerations, the decision is up to you guys with more experience.

@jzhou59
Copy link
Contributor

jzhou59 commented Sep 7, 2021

Currently, I have created a separated running schemaregistry based on springboot.
Inside such schemaregistry a general skeleton has been completed and most APIs(defined in openschema-spec) have been implemented.

The left APIs that I haven't accomplished are related to compatibility checks. It is hard and I'm surveying methods for that.
No matter which type of schemaregistry(separated or inside-eventmesh), compatibility checks are needed. And it will be the main work I am going to do next. 😄

@yzhao244
Copy link
Contributor Author

yzhao244 commented Sep 7, 2021

Currently, I have created a separated running schemaregistry based on springboot.
Inside such schemaregistry a general skeleton has been completed and most APIs(defined in openschema-spec) have been implemented.

The left APIs that I haven't accomplished are related to compatibility checks. It is hard and I'm surveying methods for that.
No matter which type of schemaregistry(separated or inside-eventmesh), compatibility checks are needed. And it will be the main work I am going to do next. 😄

@qqeasonchen @ruanwenjun @jinrongluo If I am not mistaken, I think it makes sense that schema registry can be run as a seperate service which is out of runtime. Also it can be implemented by using SpringBoot as @JunjieChou is doing.. Therefore, I have removed schema registry APIs out of the readme in eventmesh-admin module and keep this PR only focusing on Admin APIs.

@qqeasonchen
Copy link
Contributor

@yzhao244 @JunjieChou sure, for admin module, i think it is clear for us. and for schemaregistry moudle, @JunjieChou is working based on @yzhao244 , you are the co-committer, right?

@jzhou59
Copy link
Contributor

jzhou59 commented Sep 9, 2021

@yzhao244 @JunjieChou sure, for admin module, i think it is clear for us. and for schemaregistry moudle, @JunjieChou is working based on @yzhao244 , you are the co-committer, right?

Yes

@yzhao244
Copy link
Contributor Author

yzhao244 commented Sep 9, 2021

@yzhao244 @JunjieChou sure, for admin module, i think it is clear for us. and for schemaregistry moudle, @JunjieChou is working based on @yzhao244 , you are the co-committer, right?

Yes

Yes, I am going to work with @JunjieChou on Schema Registry for EventMesh together. :)

@ruanwenjun
Copy link
Member

@yzhao244 @JunjieChou Be careful to make the git commit message clear if your two person submit to one branch, then the community can directly merge to development branch, the all commit log can retain.

Otherwise, community will use squash merge, then the all commit log will be merged into one, this means one person's contribution will lose.

This often happens in other community.

@jzhou59
Copy link
Contributor

jzhou59 commented Sep 13, 2021

@ruanwenjun OK, that's indeed a thing needed to be taken into consideration.

Also, @yzhao244 I have a proposal for our division of work.
As shown in schema registry design doc, there are two stages from client to schema registry service:

  1. client <------> eventmesh: eventmesh serves as a middleman, transferring client requests to schema registry.
  2. eventmesh <------> schema registry: a separated service handle those requests and send responses.
    So each of us could take one stage, then there will not have a conflict on commit log. Which part would you like to take?

If you would like to do the first one, that you just need to modify the persistence layer and combine the codes with admin module. And I will continue the second one.
If you would like to do the second one, you could merge what I have done based on spring boot and continue that. Then I will take the first part based on your previous work. But the commit log may not retain.

You are the first contributor to this series of issues, so you get the option! 🤣

@codecov-commenter
Copy link

Codecov Report

Merging #513 (a612e11) into develop (106ca96) will not change coverage.
The diff coverage is n/a.

Impacted file tree graph

@@            Coverage Diff             @@
##             develop     #513   +/-   ##
==========================================
  Coverage      10.42%   10.42%           
  Complexity       328      328           
==========================================
  Files            241      241           
  Lines          11737    11737           
  Branches        1001     1001           
==========================================
  Hits            1224     1224           
  Misses         10411    10411           
  Partials         102      102           
Impacted Files Coverage Δ
...ntime/admin/controller/ClientManageController.java 0.00% <ø> (ø)
...che/eventmesh/runtime/boot/AbstractHTTPServer.java 0.00% <0.00%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 106ca96...a612e11. Read the comment docs.

@qqeasonchen
Copy link
Contributor

@yzhao244 @JunjieChou hi, admin moucle may neet plugin too, like eventmesh-admin-rocketmq, which used to managen topics or other management functions.

@yzhao244
Copy link
Contributor Author

@yzhao244 @JunjieChou hi, admin moucle may neet plugin too, like eventmesh-admin-rocketmq, which used to managen topics or other management functions.

@qqeasonchen @JunjieChou Yes, you are right. Under eventmesh-admin module, we can manage to create sub modules/plugins such as eventmesh-admin-rocketmq for managing topics and even subGroups. Regarding this PR, it only contains eventmesh-admin module plus readme.

@yzhao244
Copy link
Contributor Author

@ruanwenjun OK, that's indeed a thing needed to be taken into consideration.

Also, @yzhao244 I have a proposal for our division of work.
As shown in schema registry design doc, there are two stages from client to schema registry service:

  1. client <------> eventmesh: eventmesh serves as a middleman, transferring client requests to schema registry.
  2. eventmesh <------> schema registry: a separated service handle those requests and send responses.
    So each of us could take one stage, then there will not have a conflict on commit log. Which part would you like to take?

If you would like to do the first one, that you just need to modify the persistence layer and combine the codes with admin module. And I will continue the second one.
If you would like to do the second one, you could merge what I have done based on spring boot and continue that. Then I will take the first part based on your previous work. But the commit log may not retain.

You are the first contributor to this series of issues, so you get the option! 🤣

@JunjieChou you can go ahead do the schema registry since you are already working on implementing the schema registry by using SpringBoot and sounds you already have coding done lol.. Therefore, please work on the schema registry part.

@qqeasonchen
Copy link
Contributor

@yzhao244 @JunjieChou hi, admin moucle may neet plugin too, like eventmesh-admin-rocketmq, which used to managen topics or other management functions.

@qqeasonchen @JunjieChou Yes, you are right. Under eventmesh-admin module, we can manage to create sub modules/plugins such as eventmesh-admin-rocketmq for managing topics and even subGroups. Regarding this PR, it only contains eventmesh-admin module plus readme.

@yzhao244 ok, if there are no more code to be committed to this PR, it can be merged then, and waiting for the plugins.

@yzhao244
Copy link
Contributor Author

@yzhao244 @JunjieChou hi, admin moucle may neet plugin too, like eventmesh-admin-rocketmq, which used to managen topics or other management functions.

@qqeasonchen @JunjieChou Yes, you are right. Under eventmesh-admin module, we can manage to create sub modules/plugins such as eventmesh-admin-rocketmq for managing topics and even subGroups. Regarding this PR, it only contains eventmesh-admin module plus readme.

@yzhao244 ok, if there are no more code to be committed to this PR, it can be merged then, and waiting for the plugins.

@qqeasonchen Yes, you are right.. For this PR, there are no more code to be committed. :) .. I will be working on plugins and push via another PR. thx

@qqeasonchen qqeasonchen merged commit bd8d736 into apache:develop Sep 14, 2021
xwm1992 pushed a commit to xwm1992/EventMesh that referenced this pull request Dec 27, 2021
…tMesh (apache#513)

* initial checkin of eventmesh-schema-plugin

* add file header

* rework pr to add eventmesh-admin module

* typo in readme

* add topic rest apis in readme

* add topic rest apis in readme

* move schema registry out of this pr

* move schema registry out of this pr
xwm1992 pushed a commit that referenced this pull request Aug 4, 2022
…513)

* initial checkin of eventmesh-schema-plugin

* add file header

* rework pr to add eventmesh-admin module

* typo in readme

* add topic rest apis in readme

* add topic rest apis in readme

* move schema registry out of this pr

* move schema registry out of this pr
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants