When to use a datasource plugin vs a backend datasource plugin

I have been working on developing a few plugins for grafana and originally had made a datasource plugin that connects to neo4j, but then it was decided we should use a backend datasource plugin. The thinking being that the backend datasource plugin would give more capabilities with stuff like alerting and is just considered the right one to use now. But I realized that makes it sound like a non backend datasource plugin is just obsolete now.

Can someone shine some light on when/what type of situation each one should be chosen?

Backend plugins came in Grafana 7, so if you’re targeting earlier versions of Grafana, you won’t be able to make use of it.

As you’ve pointed out, there are several benefits to adding a backend to your data source plugin. We expect to see most data sources using a backend going forward. The Go SDK is still under development, so some features that you’d find in the non-backend data sources may be missing in the backend one. And, of course, it does introduce an additional programming language into your project.

I’m not aware of any plans to deprecate frontend-only data sources, though they’re being updated to use RxJS rather than promises. If you’re developing a backend data source, you shouldn’t have to think about that though.