datasources: Add support for specifying multiple datasources

If multiple sources are specified, the first available source is used.
`var wg sync.WaitGroup` is mildly more idiomatic