What is a Concurrent Worker?
'Concurrent worker' controls the number of concurrent database queries that is sent to the customer database at any point in time. It is a job-queueing function that allows the smooth process of SQL queries to be sent to your database, one at a time.
In return, visualization can be done on the Holistics platform, based on the queries. The Concurrent Workers will thus serve as mediators between the queries and the database.
How does Holistics Concurrent Workers work?
Each customer should have their own job queue that shouldn't affect each other, and each job queue can have different queue size (i.e customer A have 5 slots that can run 5 concurrent jobs, customer B has 3 slots that can run 3 concurrent slots).
Therefore, the more concurrent workers one has, the higher volume of concurrent queries one can run. Easing up congestion is as easy as adding more Concurrent Workers!
Why do you need Holistics Concurrent Workers?
In our platform, whenever someone submits a request, we construct a SQL query that sends to our customers' database, wait for the results, and visualize the charts based on it.
Since the analytics SQL query takes time (a few seconds to minutes), it's not a good idea to use synchronous web requests, thus a background job queue system is needed to handle this - Holistics Concurrent Worker.
If you'd like to learn more about the technical details, you can read more about it here (link).
Why are Concurrent Workers important?
Imagine an extreme scenario where 20 users access 100 charts at the same time. Without any control from the Holistics application, this will send 2000 database queries to the customers' database. If it's a production database, the sudden high incoming volume may crash it.
Holistics workers control the number of concurrent database queries that Holistics will send at any point in time to our customer database. If we set it the customer to have only 5 workers, that there's no more than 5 concurrent queries running at any point in time, while keeping the other queries in a common queue.
Therefore, having more Concurrent Workers increases your querying process for both you and your customers. As your business scales, it is also far more cost effective to be charged based on Concurrent Workers compared to the number of visualizations processed.
Can you give me an analogy?
Imagine you're a tourist who just landed in your favorite country. There are many people like you who are also visiting this country. If there aren't any controls, it is likely that there will be chaos and the airport would shut down.
Custom officers are therefore in place to properly permit travellers to enter the country, ensuring a smooth process. The more custom officers available, the faster the travellers can be permitted into the country. In this case, custom officers are Holistics Concurrent Workers while the travellers are the queries being sent to the database.
Embedded Analytics - Embed Workers
Holistics' Embedded Analytics feature uses a specific worker type called an Embed Worker. These workers sole usage is to support your embedding of Holistics' Dashboards into your webpage or app.
As you scale your business, you will have increasing simultaneous dashboard viewers. This inevitably slows down the querying process as multiple SQL queries are sent to your database at the same time. Embed Workers come in to ensure that the process of querying these visualization becomes a smooth process for all your customers. The more Embed Workers you have, the faster your customers get the results they need.
Embed Workers can be toggled and increased from the Embedded Analytics Manager (link) The minimum number Embed Workers required for our Embedded Analytics featured is 3 with a (current) maximum of 9. If you wish to find out more about Embedded Analytics, feel free to head to our documentation page (link). For a quick overview, you can watch our short 4mins video guide: