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
Microservices are services that can be accessed from the entire nyssr.net 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.
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.
There are several types of services in nyssr.net. 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 sillysky.net 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