Skip to content

Checklist

Kian Peymani edited this page Nov 1, 2016 · 7 revisions

An abstract list of aims in node-xyz

  • MVP features (until Jan. 2016)

    • Basic message communication over HTTP

    • Basic cli for creating / debugging a project

    • Implementing Node configuration methods

      • Static JSON file for node setting
      • dynamic change of JSON file
    • Path based address for services

      • Means that we can have services in node listening in paths (service@ip:port/math/add for example)
      • Path matching and creation class
      • run-time configurable service call strategy
        • Means that a foreign node should be able to send a message according to path (service@ip:port/math/add), and decide how is the message going to be delivered. As an example, one should be able to call all/one/a subset of services in /math, and decide to wait/not wait for one/all of their response(s).
    • Service Discovery

      • Basic service discovery with sent-to-all ping according to static JSON file
      • Add a node on the fly. This is highly coherent with JSON configuration, since a node will initially read it's configuration
        • Permission for nodes to accept and admit new nodes
          • Followed by sending cluster events to other nodes, informing them that a new node has been joined and they have to update their configurations.
    • Command line interface

      • Used locally to create and debug nodes
    • Basic Monitoring

      • XYZ GUI monitor app
  • Advance features

    • TCP transport layer with the same API

    • Default SSL/TLS authentication between nodes

    • Advanced examples and plugins

      • The big picture goal is that these example plugins should be adaptable to 3rd party developers and their needs
      • Load Balancer node
        • A node can be configured to have to communication with the outer worlds, instead have another local Load balancer node running alongside it, which accepts requests, stores them in a message queue and the hidden node will process them.
      • Authentication plugins
    • Advance Monitoring

      • Monitor node traffic and status
      • Communicate XYZ runtime
        • XYZ runtime is a UNIX shell application which can be installed on a new user on foreign hosts. It can:
          • Accepts commands such as start/stop/restart via ssh
          • Deploy new instances of an existing node (X-scaling)
Clone this wiki locally