Plugins in Shopware are essentially an extension of Symfony bundles. Such bundles and plugins can provide their own resources like assets, controllers, services or tests. To reduce friction when programming plugins for Shopware, there's an abstract base class, which every plugin extends from - the plugin base class. In this class there are helper methods to initialize parameters like the plugin's name and root path in the dependency injection container. Also, each plugin is represented as a composer package and may for example define dependencies this way.
Plugins are deeply integrated into Shopware. You can do nearly everything with plugins, like "new User Provider" or "custom Search Engine".
Plugins are not compatible with Shopware cloud! If you want to extend Shopware cloud you need an App.
Learn more about plugins in the Plugin Base Guide: