Glossary, van Gogh


An application is a service created by a factory. This factory is registered with a special registry and can start instances of its application via a message. Usually, applications in are just an entry point into the distributed service network, the first microservice to be launched, so to speak. Any number of applications and application instances can be run on one node.


Microservices are services that can be accessed from the entire with messages. They have an API in text form (JSON or XML). Messages can be addressed directly to microservices. Microservices are automatically load balanced. They can be installed on any number of nodes.


A namespace provides a working environment for a plug-in, application, or microservice. It provides threads, registers targets, and has a local nano service registry. It encapsulates this environment from other namespaces so that, for example, hundreds of instances of the same application can operate simultaneously in the same node.

Nano service

The abstraction of a small service that consists only of a single message, and whose implementation remains private. Nano services are registered in nano service registries, which are components of namespaces. You can address messages directly to nano services. Nano services are also used to distribute notifications.


Short name for namespace ID, which means the ID of a namespace.


A node is a program that runs somewhere on the network, connects to other nodes via TCP channels, and executes user software as plugins. All the nodes are the identical, except for the plugins they run. Thus, a node is merely the platform for distributed user applications.

is a "nicer net".


Short name for queue ID, which means the ID of a message queue.


RemoteSkin is a technique where a user interface on the client side consists of only one renderer. The counterpart on the server side runs distributed on one or more nodes. So the business code is executed server-side. During an update, usually only the server side is deployed. The interface of the client is described in JSON files. Currently, only a Swing client is available. Other renderers (e.g. for the web) are in the pipeline.


There are several types of services in If a service is simply called "service", it means an interface that has been registered in the service registry. This type of service can only be used within a node. There are also nano services and microservices.


is an abbreviation for Service ID. This refers to the ID of a nano service.


Just a beautiful name. Some claim is related to Skynet in the Terminator series. But we're just building a silly Skynet, putting in only modest intelligence and not letting the net gain consciousness. You are in charge of the AI.


A target is a Java object that can receive messages. To do this, it must implement the ITarget interface.

However, it is more efficient to derive an object from the CTarget class. This offers many conveniences:

  • a message handler class where incoming messages are mapped to lambdas or local methods
  • Methods for sending messages (sendRequest, sendNotification)
  • Ping support
  • Management of the own target address, deregisterTarget method
  • there are callback methods (notifyTargetRegistered, notifyTargetDeregistered)
  • a name for the target can be given (debug support)
  • messages can be logged automatically (debug support)
  • Support of self-destruction (in the absence of activity triggers)

Targets receive messages exclusively in the same thread. Therefore, it is easy to avoid concurrency errors. Likewise, resources can be safely shared with other targets if they are registered in the same namespace (and thread).


Short name for target ID, which means the ID of a registered target.


A timer in is just a message that is generated once or repeatedly after some time. A timer message can transport data. - Innovative Distributed System