March 18 2022
This has been a good week here at Volumio HQ. The main reason for that is that we somehow feel that we’ve managed to turn around the “bad climate” that we had in this community lately and re-establish the joyful vibe that we strive to cultivate in this place of the net.
We reckon that the release of Volumio 3 hasn’t been without issues: many people were frustrated by a couple of nasty bugs (which we solved) and the lack of plugins in V3. This meant that the community was filled with angry comments by users (and the famous vocal unhappy minority), which were expressing frustration about those issues. This vibe not only made this a quite less interesting place, but had a huge toll on the team’s morale and contributor’s “attachment” to the project.
Thanks to the suggestions of the private moderators’ group we decided to act and put a lot more effort in communicating proactively with the community (what you read is an outcome of this) and the users who were experiencing issues.
It looks like it’s paying off. We can sense that the spirit of this community is getting back. But we are not relaxing, this challenging time was an occasion for us to learn how to do better, and this is what we want to continue to do.
One process which is being reshaped a lot is our technical support and customer help department. First, we wanted to have a better “dispatching” of requests to the proper person in the organization. We achieved so by restructuring the contact page in a more “directive” way, to forward requests to the appropriate person (shop requests\returns, billing, technical support, partnerships, distribution etc).
Then we wanted to provide faster answers to the people requesting technical support.
By analyzing supports requests we found out that about half of them could be solved pretty quickly without the need of our support people, by just providing small written hints.
So we implemented a chat-bot with automatically matches users’ requests with our knowledge base (which we are filling on an ongoing basis) and provide immediate answers to known problems or situations.
This has proven to work well for some kinds of requests, but really it did not for others. Analyzing the flow and some feedback by our users this week, we found out that this system was not providing enough feedback on the required actions for some users (we required some further action from user before initiating the support session) which felt frustrated of not receiving support and contacted us on other channels (Facebook, forum, etc).
So, we are working to change this part, by changing the user contact flow in those kinds of situations. We expect to have this change live in about 10 days.
So, for those users which felt neglected in the past month, we acknowledge the problem and we are working to fix it, so the next time you need us you’ll find a better experience.
On the development side, work this week has been again on our cloud ecosystem. If you wonder why that is, that we spent all this time on cloud stuff and not on the “Volumio” side of things, here’s why.
Back in 2018 we took a very important architectural decision: move all the integration intelligence to the cloud, rather than on the device.
Example: our albumart retrieval server used to run on the device. It basically identified the artist, album and track and made some queries online to fetch and download the most appropriate albumart for a specific track. This worked well. Or at least it did until one of those online services shut down or change their API (this happens more frequently that you might think).
So, you have 2 ways to solve the issue:
- Update all the software you have on the field (in our case more than 430k installs). This means that many users will experience the problem until they update their software. It also means that spotting this problem will come only after you have some users reports.
- Move the logic that aggregates online content to the cloud and have the albumart facility in Volumio just rely on that.
We took the second step. This brings some additional advantages:
- We can understand quickly if something goes wrong, since we can set up automatic monitoring of all the service we use.
- When we spot a problem and fix it, the fix is istantaneous for all our users, without the need for update.
- Doing some optimizations like caching and load balancing we can offer faster response times compared to an algorithm running on the device itself, and make in turn the whole experience better.
This comes also with some disadvantages:
- It costs money to run those services. If we use the “distributed” computing power of the devices, it does not cost anything. But if we need to set up, mantain and host such systems on a scale required for Volumio, this has a cost.
Basically, every time you look for an albumart, Volumio has to pay for it. Considering the service we provide for some of those endpoint is free, we have to be very clever to optimize our technology to not be overly expensive (in those cases, we don’t use AWS but a mix of Kubernetes + dedicated VPS with high microservices density).
- In case it fails, it fails for everyone at the same time. So you have to put in place automatic recovery strategies and monitoring and ensure adequate redundancies.
Some examples of the services that use this architecture are:
- Oauth login for Spotify, QOBUZ, TIDAL (and possibly more like LastFm)
- Albumart retrieval
- Browsing of QOBUZ and TIDAL
- Plugins store
- Webradio selection
- Metadata and credits retrieval
And yes, what needed some love this week was the albumart provider. A change in an upstream API deteriorated the performace of retrieval of artist arts. We were able to fix it and deploy a fix without requiring anyone to update. And the best part of it, is that most of you didn’t notice.
We are continuing with this architectural pattern, especially when we enrich functionalities, that might explain why you see less commits on the Volumio backend regarding such aspects.
Some of the things we already worked on (we are waiting for frontend parts to support it) are live concerts notifications and lyrics.
That’s it for this week! Hope you got a better glimpse of how also the community can impact Volumio, both in positives and negatives ways. Remember that and keep on helping making this place a good portion of the net.