Module: Karafka::Swarm

Defined in:
lib/karafka/swarm.rb,
lib/karafka/swarm/node.rb,
lib/karafka/swarm/pidfd.rb,
lib/karafka/swarm/manager.rb,
lib/karafka/swarm/supervisor.rb,
lib/karafka/swarm/liveness_listener.rb

Overview

Namespace for the Swarm capabilities.

Karafka in the swarm mode will fork additional processes and use the parent process as a supervisor. This capability allows to run multiple processes alongside but saves some memory due to CoW.

Defined Under Namespace

Classes: LivenessListener, Manager, Node, Pidfd, Supervisor

Class Method Summary collapse

Class Method Details

.ensure_supported!Object

Raises an error if swarm is not supported on a given platform



12
13
14
15
16
17
18
19
# File 'lib/karafka/swarm.rb', line 12

def ensure_supported!
  return if supported?

  raise(
    Errors::UnsupportedOptionError,
    'Swarm mode not supported on this platform'
  )
end

.supported?Boolean

Returns true if fork API and pidfd OS API are available, otherwise false.

Returns:

  • (Boolean)

    true if fork API and pidfd OS API are available, otherwise false



22
23
24
# File 'lib/karafka/swarm.rb', line 22

def supported?
  ::Process.respond_to?(:fork) && Swarm::Pidfd.supported?
end