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

[Task] add KitexPlugin #5425

Open
5 tasks
loongs-zhang opened this issue Jan 29, 2024 · 15 comments
Open
5 tasks

[Task] add KitexPlugin #5425

loongs-zhang opened this issue Jan 29, 2024 · 15 comments
Labels
gsoc google summer of code level: hard plugin: wasm status: volunteer wanted Extra attention is needed
Milestone

Comments

@loongs-zhang
Copy link
Member

loongs-zhang commented Jan 29, 2024

Description

kitex is a Go RPC framework with high-performance and strong-extensibility for building micro-services.

This plugin should base on WasmPlugin.

You can find useful information here.

The usage documentation for WasmPlugin is here.

Relevant Skills

Know the use of Apache ShenYu, especially the wasm plugin.
Familiar with Golang and Java.

Task List

  • add shenyu-client-kitex to shenyu-client-golang;
  • add shenyu-plugin-kitex module;
  • add shenyu-spring-boot-starter-plugin-kitex module;
  • add shenyu-integrated-test-kitex module;
  • add doc to shenyu-website for KitexPlugin;
@loongs-zhang loongs-zhang added status: volunteer wanted Extra attention is needed level: hard gsoc google summer of code labels Jan 29, 2024
@loongs-zhang loongs-zhang added this to the 2.6.2 milestone Jan 29, 2024
@Divyansh200102
Copy link
Contributor

Divyansh200102 commented Jan 29, 2024

Hi, @dragon-zhang I would like to join but I don't have access to wechat in my country so could you please tell is there any other way to get in contact?

@GuangmingLuo
Copy link

Hi, what is Kitex used for in Shenyu ? thanks

@loongs-zhang
Copy link
Member Author

Hi, @dragon-zhang I would like to join but I don't have access to wechat in my country so could you please tell is there any other way to get in contact?

Sorry for the late response, I've read the email, it's plan to reply to you after apache/shenyu-website#1006 get merged. BTW, we can talk in email or Tencent Meeting.

@loongs-zhang
Copy link
Member Author

loongs-zhang commented Jan 29, 2024

Hi, what is Kitex used for in Shenyu ? thanks

The low-level part of the RPC plugin, I treat it as one of Shenyu's RPC data panels, just like Dubbo.

Treat the code in the Rust as the Golang, and you will find the answer in https://github.com/apache/shenyu-website/pull/1006/files#diff-e3f80caf213bd139c1b2565e82809490a0504c54a368955e934d394059f72f6e

@Divyansh200102
Copy link
Contributor

Divyansh200102 commented Jan 29, 2024

Hi, @dragon-zhang I would like to join but I don't have access to wechat in my country so could you please tell is there any other way to get in contact?

Sorry for the late response, I've read the email, it's plan to reply to you after apache/shenyu-website#1006 get merged. BTW, we can talk in email or Tencent Meeting.

Thanks a lot I appreciate it. Email would be good I also plan on working on this project for gsoc

@loongs-zhang
Copy link
Member Author

Hi, @dragon-zhang I would like to join but I don't have access to wechat in my country so could you please tell is there any other way to get in contact?

Sorry for the late response, I've read the email, it's plan to reply to you after apache/shenyu-website#1006 get merged. BTW, we can talk in email or Tencent Meeting.

Thanks a lot I appreciate it. Email would be good I also plan on working on this project for gsoc

At present, it is only proposed and still needs to be reviewed by the official GSOC. This proposal may not be included finally.

@Divyansh200102
Copy link
Contributor

Divyansh200102 commented Jan 29, 2024

Hi, @dragon-zhang I would like to join but I don't have access to wechat in my country so could you please tell is there any other way to get in contact?

Sorry for the late response, I've read the email, it's plan to reply to you after apache/shenyu-website#1006 get merged. BTW, we can talk in email or Tencent Meeting.

Thanks a lot I appreciate it. Email would be good I also plan on working on this project for gsoc

At present, it is only proposed and still needs to be reviewed by the official GSOC. This proposal may not be included finally.

I understand.Thank you for the information I really appreciate it

@koonchen
Copy link
Contributor

If this issue doesn't make it into GSOC, I'd like to have a try.

@loongs-zhang
Copy link
Member Author

Welcome to join.

@HarshSawarkar
Copy link

Hi @loongs-zhang I would like to work on this issue under GSOC 2024. I have previous open source contribution experience in Apache Repositories. And I have a extensive experience on working with Java and Golang technologies. I am also familiar with Apache ShenYU. Can you please guide?

@loongs-zhang
Copy link
Member Author

Hi @loongs-zhang I would like to work on this issue under GSOC 2024. I have previous open source contribution experience in Apache Repositories. And I have a extensive experience on working with Java and Golang technologies. I am also familiar with Apache ShenYU. Can you please guide?

This ISSUE already contains some information. What additional information do you need? Please tell me more details.

@Divyansh200102
Copy link
Contributor

Divyansh200102 commented Mar 16, 2024

I had a few questions regarding the project:

  1. While WASM doesn't natively support threads, how will the KitexPlugin leverage alternative WASM concurrency mechanisms (e.g., WebAssembly SIMD instructions, asynchronous tasks) to handle Kitex's asynchronous service calls efficiently within the WASM environment?
  2. Are there any limitations or specific considerations for handling asynchronous operations within the WASM context for Kitex service calls? This could involve potential deadlocks, race conditions, or limitations on the number of concurrent operations supported by the chosen WASM concurrency approach.
  3. Can the KitexPlugin leverage WASM exception handling mechanisms (if available) to capture and report WASM-specific errors that might occur during Kitex service calls within the WASM module? This could provide more granular error information compared to standard Go errors for debugging purposes.

@loongs-zhang
Copy link
Member Author

loongs-zhang commented Mar 18, 2024

  1. While WASM doesn't natively support threads, how will the KitexPlugin leverage alternative WASM concurrency mechanisms (e.g., WebAssembly SIMD instructions, asynchronous tasks) to handle Kitex's asynchronous service calls efficiently within the WASM environment?
  2. Are there any limitations or specific considerations for handling asynchronous operations within the WASM context for Kitex service calls? This could involve potential deadlocks, race conditions, or limitations on the number of concurrent operations supported by the chosen WASM concurrency approach.

The Java part of KitexPlugin uses multithreading, while the WASM part uses single threading.

  1. Can the KitexPlugin leverage WASM exception handling mechanisms (if available) to capture and report WASM-specific errors that might occur during Kitex service calls within the WASM module? This could provide more granular error information compared to standard Go errors for debugging purposes.

At present, WasmPlugin has not considered the error handle part, your suggestion is a good idea.

@Divyansh200102
Copy link
Contributor

Divyansh200102 commented May 5, 2024

Was there a reason why my proposal of Kitex Plugin not selected for GSOC? @loongs-zhang @moremind
Also can I still work on this project?

This was my proposal:_Apache ShenYu KitexPlugin (10).pdf

@loongs-zhang
Copy link
Member Author

Was there a reason why my proposal of Kitex Plugin not selected for GSOC? @loongs-zhang @moremind Also can I still work on this project?

This was my proposal:_Apache ShenYu KitexPlugin (10).pdf

I have reviewed the PR you submitted and it can be seen that your skills will be stronger in the future.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
gsoc google summer of code level: hard plugin: wasm status: volunteer wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

5 participants