Raft event log

Event storeraft-event-log

Generic in-house Raft-replicated append-only log used as journal or sequencer.

Provider
default
Category
Messaging
Properties · 4 set by this component
propertytypevaluesrequiredkind defaultthis component
journaledboolean—notrue▸ true
managedboolean—nofalseinherited
nodes · component propertyinteger—no3inherited
replicationenumnone | raft | primary-replicanonone▸ raft
roleenumjournal | sequencernojournal▸ journal
snapshotIntervalEventsinteger—no—inherited
storageenummmap | rocksdb | databasenodatabase▸ mmap
Rules that apply · 1

Every rule whose selector covers this component's kind or its category. Whether a rule fires depends on the design: its properties, its edges and its groups.

stateful-engine-pinned-to-single-zone

A matching engine, coordination service or event store living in exactly one availability zone, with no failover and no replication, is lost with that zone. Everything that depends on it stops with it.

  • — all of these hold:
  • — the node sits inside exactly 1 availability-zone group
  • — any of these hold:
  • — the node's `failover` is "none"
  • — the node's `replicated` is false
  • — the node's `replication` is "none"
Use it in a design
nodes:
  - { id: "raft-event-log", component: "raft-event-log" }
Other Event store products · 4
Source
# yaml-language-server: $schema=../../schema/component.schema.json
# Generic in-house Raft-replicated append-only log (exchange journals, sequencers, custom event stores).
# Three voting nodes and memory-mapped segments are the usual shape.
schemaVersion: "1"
type: "component"
id: "raft-event-log"
kind: "event-store"
provider: "default"
docs: "https://raft.github.io/"
defaults:
  replication: "raft"
  journaled: true
  storage: "mmap"
  role: "journal"
properties:
  nodes:
    type: "integer"
    default: 3

The same page as markdown, for an agent: /catalogue/components/raft-event-log.md