question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

[Feature] Plugin system design

See original GitHub issue

Search before asking

  • I had searched in the feature and found no similar feature requirement.

Description

Regarding the plugin, I think we can refer to the implementation of elasticsearch , such as installing, deleting and viewing. We can also create a way similar to the appstore and put the plugin on it, or we can create another sub-repository , official The code base puts some default plugins that support the apache protocol. If other developers want to develop plugins, they only need to introduce the seatunnel plugin module to develop a plugin that suits their business. The development of plugins does not limit the development language , and you can easily add plugins.

Usage Scenario

No response

Related issues

No response

Are you willing to submit a PR?

  • Yes I am willing to submit a PR!

Code of Conduct

Issue Analytics

  • State:open
  • Created 2 years ago
  • Reactions:2
  • Comments:7 (7 by maintainers)

github_iconTop GitHub Comments

5reactions
garyelephantcommented, Dec 19, 2021

Have a plugin system is on our long-term roadmap, this can be divided into 6 tasks:

  1. [done] Using Java Service Loader to find plugin implementation classes in runtime, which we have already implemented since SeaTunnel have been started in 2017.
  2. A mechanism to build many separate non-fat jars to load them into spark(which is easy to be done) and flink(which is not easy to be done).
  3. Using Java class loader to build isolation between different plugin jars, make them not conflict with different version of the same class. @wntp is currently working on this.
  4. A mechanism to easy develop, build, package a plugin code into a package.
  5. A plugin management command line tool to easy find, install, uninstall, reinstall any plugins. I’m also a user of Elasticsearch and I think it’s a good idea to build a command line tool like plugin command in Elasticsearch.
  6. A plugin repository to register plugins developed by community developers, probably this will be a web page, maybe we can put it in our official website of project. There’s still a question, where to store the plugins ?

I think we can discuss more details about the last 5 tasks.

0reactions
garyelephantcommented, Dec 20, 2021

how about store plugins in maven repository? this have these benifits:

  1. no need to perchase server to host them.
  2. no need to implement a set of new protocol(naming, publishing, etc.).
  3. users can have their private plugins repository
  4. can benifit from maven proxy, don’t depend on centralized server.

This is a good idea, making our work simpler

Read more comments on GitHub >

github_iconTop Results From Across the Web

How to Design Software — Plugin Systems | by Joseph Gefroh
Learn how to build a plugin system to allow others to extend your program's functionality and modularity, using a chatbot as an example....
Read more >
Plug-in Architecture. and the story of the data pipeline…
The plug-ins are stand-alone, independent components that contain specialized processing, additional features, and custom code that is meant to ...
Read more >
Plugin systems - when & why? - DEV Community ‍ ‍
I've recently heard some rants against plugin systems and modular ... and there's a trap to be aware of when designing such systems, ......
Read more >
Designing a plugin architecture for an application
One way to prevent this is to design a plugin architecture from the start - and to continually ask yourself the question whether...
Read more >
Plugin architecture
The Plugin architecture pattern consists of two types of architecture ... ​The core is the main application, while plugins contain additional features that....
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found