Petri consists of 2 parts:

  • Petri server, which manages and stores all experiments
  • Laboratory, Petri’s client

Petri architecture

Laboratory retrieves the active experiments from Petri server and conducts the experiments. All business logic of the tossing algorithm and all filter logic is run from the laboratory which is embedded in the client application.

Note: Clients that don’t run a JVM application can call a separate server to perform the conduction for them, and get the resulting testgroups via HTTP API.

Petri is designed to be very flexible, so if you don’t want to use Petri server you can simply use Petri Laboratory and configure it to load the active experiments from the local file system (since you don’t have Petri server, it is up to you to provide the experiment definition file).