Architecture

An instance of SPARKL comprises one or more nodes. The nodes contact each other to form a cluster. They also share the same configuration database, which contains the users and their resources.

Figure: SPARKL Architecture overview

As shown in Figure 1:

  • An instance can comprise one or more nodes, running on one or more machines. The nodes all connect to each other. Multiple nodes can run on a single machine.
    Note: If you want to use SPARKL in the cloud, make sure you provide a TLS/SSL layer for communication.
  • The configuration database is shared and synchronised among all nodes in the same instance. It contains all users and their resources, such as configuration components.
  • Each user has access to all the nodes in the SPARKL instance. All users have their own configuration trees, which are made up of all the resources - services, operations and other configuration components - a particular user has.

Nodes

A node is a SPARKL runtime system. Each node has a list of extensions, which provide the functionalities of SPARKL. A transaction is processed on one or more nodes depending on how you write your configuration.

A SPARKL node is in effect a virtual machine. This means that you can have a cluster of nodes on a single machine, or across any number of machines.

A node's configuration is defined in its sys.config file. It specifies among others:

  • The name of the node
  • The domains of the node
  • The IP address and port used by the node
  • The contact node of the node - that is - the one it tries to connect to
  • The list of extensions available on the node

Nodes use each other's name to connect and form clusters. SPARKL also uses node names and node domains to decide on which particular node(s) it runs a transaction.

Note: By default, SPARKL processes a transaction on any node that happens to be running.

Each node has a set of applications running on it. These are called extensions and are responsible for the functionalities of SPARKL.

You find the sys.config configuration file in the directory of the node along with the following:
  • config.backup
    A backup of all resources kept in your SPARKL user tree.
  • log
    The directory that contains raw SPARKL system logs.
  • ssl
    The directory that contains your machine key and TLS/SSL certificate.

Users

An instance of SPARKL can have one or more users. Every user has access to all nodes in the instance.

You can create a user account on any SPARKL node. It does not matter on which node an account is created, because the configuration database that holds user information is synchronised across all nodes.

Users can have admin rights. Admin users can:

  • Delete other users
  • Give admin rights to other users
  • Access system logs
  • Start and stop SPARKL extensions

Admin users can manage other user accounts in the Users mode of the SPARKLĀ® Developer Console.

Both admin users and users without admin rights have their own configuration tree, to which they have exclusive rights.

Configuration trees

A configuration tree is an XML document tree that contains all the configuration components of a particular user. The top level of the document tree is the home folder of the user.

A configuration tree comprises configuration components - like services, operations and fields - separated into folders.

While all users and all their resources are kept in the same configuration database, the configuration trees themselves are exclusive to the particular users who own them.

Users can only use each other's configurations if they have execute permissions to them.

Note: Permission rights are not the same as admin rights. You can specify permission rights in the markup of your configurations.

Users can browse their configuration tree in the Navigation Tree panel of the SPARKLĀ® Developer Console.