1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# node-a — see the header of docker-compose.yml for the shape of the galaxy.
[]
= "0.0.0.0"
= 9999
= true
= false
= false
= "/var/lib/sightingdb"
= 300
= 60
# Unique in the galaxy. Sightings are counted per node, and two nodes sharing a
# name would each take the other's for its own.
= "node-a"
[]
= "hot"
= 3600
= "/var/lib/sightingdb/tiers.toml"
# Absent means everything. A full mirror: it holds every namespace the load
# balancer sends it, including ones created after it started.
[]
= 5
# Short so a node that was stopped visibly catches up when it comes back. It
# asks each peer what it holds, compares, and pulls what it is missing — and it
# only ever pulls namespaces it stores itself.
= 30
# A node counts its own sightings, so it has no router's tally to repair.
= 0
= 0
# Only the other full mirror. There is nothing to catch up from node-c: it
# holds a subset of what this node holds, so anything it has, this node was
# sent too. node-c points *here* instead, which is the direction that helps.
= [
{ = "http://node-b:9999", = "peer-full" },
]
# Keys, declared here rather than in a file so that this demo can show the one
# thing that matters about a peer key: it is a capability, and the *peer*
# decides what it opens.
#
# A file would be rewritable from the management interface, which is better in
# earnest — but an acl_file that does not exist yet starts empty and would
# discard these, so the demo would lose the point it is making. The load
# balancer has the writable files instead, since that is where you would open
# the interface.
[]
# For poking at this node directly: curl -H 'Authorization: demo' ...
= "rw, admin"
# What the load balancer uses here. "rw" everywhere, because a full mirror has
# to be able to take a write to any namespace.
= "rw"
# What the other nodes use when they catch up from this one. Read-only: pulling
# is a read, and a peer catching up has no business writing here.
= "r"