PactFlow On-Premises Architecture

System architecture

Minimum requirements

  • An application server capable of running Docker.

  • PostgreSQL database.

  • Redis Serialization Protocol (RESP)-compatible key/value cache.

  • SAML IDP for SSO.

  • PactFlow On-Premises license file.

Example AWS deployment using ECS

architecture.png

Internal architecture

We distribute the PactFlow On-Premises application as a Docker image. It uses the open-source Pact Broker, which is a Ruby application.

Application user requirements

You can run the application without elevated privileges. It runs under the user app.

Application port

The PactFlow On-Premises application runs on port 9292 by default. You can configure it by setting the PACTFLOW_HTTP_PORT environment variable.

Healthcheck endpoint

There is a healthcheck endpoint at http:///diagnostic/status/heartbeat meant for Docker container management tools.

  • It doesn't need authentication.

  • It doesn't touch the database.

  • You can use it to check if the load balancer targets are working properly.

If you're running the healthcheck from inside the container, ensure to use the port specified by the $PACTFLOW_HTTP_PORT environment variable (defaults to 9292 if not set).

You can use supervisorctl to send the healthcheck request.

Example

An example healthcheck configuration for Docker Compose:

healthcheck:
  test: ["supervisorctl", "status", "haproxy", "marko", "pactflow"]
  interval: 30s
  timeout: 10s
  retries: 3

To check the connection to the database, use the endpoint /diagnostic/status/dependencies. This endpoint shouldn't be used by Docker container managment services, as unrelated database issues might cause the Docker container to churn.

License file

PactFlow On-Premises requires a license file to run. Contact us if you didn't receive one when your account was set up. Visit the License file section for installation instructions.

Publication date: