The FrogNet Monitor

Run it and you are watching the pond think.

It writes nothing, owns nothing, and holds no state that outlives a keystroke. Everything on the screen came out of FrogNet Memory a moment earlier, using two HTTP calls and a name — the same calls any application of yours would make. It cannot find out which node wrote what it is showing you.

Two calls and a name
Two calls and a name

The FrogNet Monitor — video 7 of the series.

Video 7 of the series — not required to get a FrogNet running, and the best fundamental introduction to working with FrogNet Memory anyway.

§01 · Two calls and a name

Everything else on this site asks you to accept an architecture. This asks you to look at one program.

The Monitor has no protocol in it at all — only names, reads, and a screen. Each machine writes its own state into the memory; the Monitor is an ordinary reader of the same memory every program reads. The same record, from two viewpoints, is the whole trick — and in the video a live degraded peer is diagnosed on camera with nothing but that.

A conventional monitor interrogates managed devices. This one does not. The devices independently publish their own truths and the Monitor derives a view from them. If a monitoring system built on FrogNet spends its time polling individual machines through device-specific endpoints, it has bypassed the programming model demonstrated here.

Look at what is not in it. The values are directly addressable, so there is no service to query and none to keep alive. Nodes appear and disappear as the topology changes and the Monitor shows them joining and leaving — with no membership service, no subscription, no registration step, no notification, and no membership code. Nothing told it a node had arrived; a value simply exists that did not before. The joining and leaving is not a feature that was implemented here. It is what reading state looks like when nodes come and go.

The write side — not the Monitor's

Every node publishes its own state under its own name. The Monitor never asks a machine anything; the machine already said it.

The read side — all the Monitor is

Read a value by name. Read a set by prefix. That is the complete surface — the two calls your application would make.

It is also the network's standing test. A dashboard that paints means the local proxy answered, the local daemon carried the request, the elected data host served it, and the far side's sensors were published. A column that goes blank is a layer telling you it stopped.

And it is the cheapest possible contribution: write your own reader, in any language, against two calls. If it disagrees with the Monitor, one of us has a bug worth having found. The full chapter is in the book — The Monitor — What the Network Looks Like From Here → · In the specification: §15, Reference Applications →

"C did not replace assembler — it uses assembler. You lose some of that exquisite control, and you gain so much more. That is what FrogNet Memory does for you."

From the Monitor video — the best statement of the thesis in the series

Watch the series → The programming surface →