Interface MeshService


public interface MeshService
A service for administering MeshNodes.

Mesh is a distributed Git management system, allowing repositories to replicated to multiple active nodes, all of which can serve both read and write traffic. Adding Mesh nodes makes additional targets available to host replicas and increases the overall availability and scalability of the system.

Since:
8.0
  • Method Details

    • getMember

      @Nonnull MeshNode getMember(long id)
      Parameters:
      id - the node ID
      Returns:
      the node
      Throws:
      NoSuchMeshNodeException - if the node is not found
    • getMembers

      @Nonnull List<MeshNode> getMembers()
      Returns:
      the list of currently registered nodes, including the sidecar if it's running
    • getSidecar

      @Nonnull Optional<MeshNode> getSidecar()
      Returns:
      the sidecar, if one is running on the current node
    • register

      @Nonnull MeshNode register(@Nonnull RegisterMeshNodeRequest request)
      Registers and provisions a new node and assigns unallocated partitions to it. The node is required to be running so it can be provisioned, which establishes trust between the control plane and the node.
      Parameters:
      request - request providing the new node details such as the name, id, RPC URL and secret
      Returns:
      the newly registered node, with a generated value for ID if one was not provided in the request
    • update

      @Nonnull MeshNode update(@Nonnull UpdateMeshNodeRequest request)
      Updates the node details, such as the RPC URL, name and/or secret.
      Parameters:
      request - provides new values for fields that should be updated
      Returns:
      the updated node
      Throws:
      NoSuchMeshNodeException - if the node is not found