typedb / typedb-common

TypeDB Common Libraries and Scripts
GNU Affero General Public License v3.0
7 stars 14 forks source link

Fully-featured TypeDB Cluster Runner #125

Closed lolski closed 2 years ago

lolski commented 2 years ago

What is the goal of this PR?

We have introduced a fully-featured TypeDB Cluster runner, capable of instantiating a cluster with multiple servers, accepting arbitrary configurations and providing programmatic APIs to manage the servers.

These capabilities grant a great deal of flexibility in testing various kinds of scenarios, such as different failure conditions, TLS configurations, and Logstash configurations.

This new runner is intended to replace the old, feature-limited runner, capable only of creating a single TypeDB Cluster server.

What are the changes implemented in this PR?

  1. Restructure the runners in order to simplify the class hierarchy
  2. Implement the new TypeDB Cluster Runner
    • Cluster runner
      • can instantiate a cluster with arbitrary configurations
      • allows users to use either the default cluster server runner or a custom one
    • Cluster server runner
      • runner interface: allows creating additional cluster server implementations
      • default runner: a lightweight runner that can instantiate Cluster server processes in the local machine