The Alteryx Designer is an intuitive drag-and-drop user interface for users to drag tools from a Tool Palette onto the canvas. These tools can be used to create Alteryx workflows, macros, and applications. This allows the users to run workflows instantly to process data. Alteryx Designer processes workflows from a local instance of the Alteryx Engine and is written primarily in C#. Users may publish their workflows, macros, and applications to the Alteryx Analytics gallery, where others can download and run them. Workflows can be scheduled at fixed times or at recurring intervals through the Alteryx Server deployment. Alteryx Designer has a Scheduler interface located within it to execute scheduled workflows.
The Alteryx Engine, written in C++, runs a workflow and produces the output from a workflow built in Alteryx Designer. The Engine processes the data sources in-memory once the workflow is running. Processing will be written to temporary files on a disk and deleted once the processing is complete after surpasses memory limitations. We installed Alteryx by selecting the option to install the suite of R tools used for predictive analysis.
Alteryx installs the R tools, used for statistical computing and graphics, through the R program and provides a connection between the Alteryx Engine and the R Engine. This allows for the tools to function in the workflow. A command line is used by the Alteryx Engine to communicate with the R Engine.
The Alteryx Engine may execute the following tasks depending on the workflow:
- Read or write input/output files and one or more databases
- Process external runtime commands
- Send email to the email server through SMTP
- Upload or download data from the web
Let's dive a little deeper into the Alteryx Engine on how it gets deployed across multiple servers. The Alteryx Service, written in C++ and C# wrappers, allows the Alteryx Engine to deploy the execution of workflows, management, and scheduling. This is accomplished by using a Controller-Worker architecture. The server utilizes the Controller to manage the jobs scheduled to run and the Worker performs the work. The Alteryx application files and job queues are stored by the Alteryx Persistence tier to perform the operations of the Alteryx Service.
The Alteryx Service Controller is responsible for the delegation of work and management of the service settings to the Alteryx Service Workers. When jobs are received from the Scheduler, the Controller views them within the persistence layer, where all queued jobs are maintained, and then delegates the jobs to the workers. This is where Alteryx Service Worker comes into action, as the Worker runs the job and produces the output. The system performance determines how many Workers are needed to run the jobs.
The Alteryx architecture process flow diagram begins from the drag-and-drop workflow tools to executing results through the Alteryx Engine: