...
- Releases - finer grained components could have a finer grained release process, speeding up the release cycle.
- Distributions can be cut more easily for specific use-cases, based on what components and customizations to the base client are needed (Mainnet, ETC, Private nets, standalone EVM)
- Customization - Modular components with plug-ins enable customization of the client to fit the needs of different use-cases in a clean way, with well defined APIs and module boundaries
- Linea Rollup definition, using plug-ins and novel components to allow Besu to operate a L2 network. Distributing these changes in a repeatable, reliable way to users and node operators.
- Increases pace of innovation - experiments and prototypes become much easier, faster, and lower risk to pursue.
- New use-cases for Besu can be piloted quickly, without maintaining complex forks of the Besu client
- End User Control - software modularity should lend itself easily to greater customizability for the end user.
- Client modification can be done easily by swapping or altering components. Altered components are Besu at their core, but the plug-in system changes their behavior. Modular components may be Besu components or completely novel components that work with Besu via documented interfaces (i.e. a Rust EVM).
- Reduces cognitive complexity - better defined scope for contributors to target a specific part of the codebase. New developers can focus more narrowly, and get up to speed faster with fewer distractions.
...