A different platform for nano- and microservices

nyssr.net is a network of JAVA nodes connected via TCP channels. Messages are sent through these channels to other nodes and forwarded from node to node as needed. No new connections will be opened.

Nodes have an ID (here moon/planet names).

nodes net

A node consists of a small fast-loading micro-kernel, which loads additional functions as plugins at startup. Even such important features as TCP or the transport layer are loaded as plugins, as well as services and applications. A list in the configuration contains all modules to be loaded. Therefore, the configuration alone determines which functions a node will possess and which tasks it will perform. Usually, when nodes are executed in containers, all containers are identical.

One node can load hundreds of plugins. Deploying new microservices is simple and fast. No need to set up a new server for each service. One additional entry in the plugin list is sufficient. Moreover, nyssr.net can consist of a single node - or 1000, depending on your needs.

nodes with plugins

Each piece of code can send messages in nyssr.net. Only objects registered for this purpose can receive messages. We call them targets. Upon registration, targets receive an address that is unique in the entire nyssr.net. Messages can now be sent to this object from anywhere in nyssr.net.

But doesn't the address of the object have to be known everywhere, that means configured? No, there are transport layers on top of the object-to-object messaging. Registries for nano services and microservices are registered under a simple ID (e.g. "database statistics"). From now on it is sufficient if a message contains this ID as receiver. The system ensures that the owner object receives this message, regardless of whether the owner was installed on the same node or a distant one.

microservice discovery

If multiple microservices are registered under the same ID, one instance is selected by the registry as the recipient. The load balancing works without any additional software nyssr.net-wide.

A new microservice can be registered simply by function call or by message. Within minutes, a new service is set up and can just as quickly be used by any code in the nyssr.net .

Communication in nyssr.net is trimmed for ease of use and high speed. Services are created and activated very quickly. Both qualities are prerequisites for the creation of a platform that allows many modules - even small ones -

  • which are self-contained and complete
  • that do not have dependencies such as shared interfaces
  • which communicate with other modules only via messages
  • that have a documented API
  • that do not age but operate for decades
  • which can be easily expanded due to their size and clarity
  • which are considerably more cost-effective than libraries in monoliths for the reasons mentioned above.

An administrator can optimize a nyssr.net just by cleverly arranging the TCP channels and configuring the plugin lists. New nodes can be added at any time.

nyssr.net is the nicer net