There are many plugin types supported:
- Device drivers
- Data storage plugins
- Data processing and analysis modules
- Visual user interface components
- Localization and rebranding packages
- External user authentication modules
- Web applications
- Resource packs
Since plugins work inside the AggreGate server or unified console, they should be developed in Java. Each plugin is a single Java Archive (JAR) file that may optionally depend on other plugins.
Plugin architecture is based on the Java Plugin Framework (JPF) library. JPF was selected in favor of frameworks like OSGi due to its extremely lightweight nature. It allows the server to operate in low-memory environments, like single-board computers, IoT gateways, touch panels and Linux PLCs.
Apart from adding completely new data storage/processing/visualization functionality, plugins can also include resources of existing types, such as alerts or reports.