Why ?
A datasource is a complex class implementing various functional aspects.
On the abstract side, grafana splits the Datasource API into feature-sized interfaces.
Implementing features as mixins allow us to match that organization in our implementation, which hopefully translates into more readable code and more manageable chunks of logic as we implement more features.
It could also allow us to easily activate/deactivate a feature in a build, which may be handy when debugging and/or releasing.
Why ? A datasource is a complex class implementing various functional aspects. On the abstract side, grafana splits the Datasource API into feature-sized interfaces.
Implementing features as mixins allow us to match that organization in our implementation, which hopefully translates into more readable code and more manageable chunks of logic as we implement more features.
It could also allow us to easily activate/deactivate a feature in a build, which may be handy when debugging and/or releasing.
See also : grafana/plugin-tools#783