Akka Discovery MongoDB

This module enables IPF users to use MongoDB as a cluster bootstrap mechanism for discovering other nodes in an Akka cluster. Other mechanisms include Kubernetes, DNS, Consul, etc.

When to Use

In an IPF context, you should always aim to use the Kubernetes API discovery method.

However, you should use this discovery method only when all of the following are true:

  1. IPF nodes are running in a multi DC setup on Kubernetes

  2. The DCs are in the same metropolitan region

  3. The two Kubernetes clusters cannot access one another

  4. The two Kubernetes clusters can access one another over a WAN

  5. The two Kubernetes clusters can access the same MongoDB instance

If IPF is running in a multi-DC environment but the two Kubernetes clusters can talk to one another internally, then you should continue to use the recommended Kubernetes API discovery mechanism as documented here.

When Not to Use

The table below shows the various deployment patterns and when to use which discovery mechanism:

Setup What plugin to use What to do

One k8s cluster

Kubernetes API

Use pre-existing k8s metadata and labels to let nodes discover one another

Multiple k8s clusters in multiple DCs, but they can talk to one another

Kubernetes API

Treat it as one stretched Akka cluster that’s agnostic to the underlying infrastructure

Multiple k8s clusters that cannot talk to one another and do not share infrastructure

Kubernetes API

Treat it as two separate active-active IPF environments

WARNING: this setup might introduce unforeseen issues unrelated to discovery. Discuss this setup with IPF Support.