Online shop server: live demo
healthy Pulse 59820325 · 2026-11-13T22:42:36Z · Changes things: adopted Playbooks (A4 demonstration)
HEART for software: a shop's web server. Three Playbooks the owner adopted fix known problems within daily limits; everything else is escalated, and nothing destructive is possible. HEART runs as a sidecar on the shop's own server, beside the web workers, reporting outbound only.
Next in its story: performance.overloaded in about 2 minutes.
What HEART Hub receives
Only the public Pulse and public alerts: the status and fault codes. Nothing else ever leaves the device.
| Status | healthy | public | |
| Storefront | open | public |
What stays on the device
The owner or clinic sees these locally with a key. They are never reported.
| Requests | 17.4 /s | internal | |
| Page time, 95th percentile | 184 ms | internal | |
| Workers answering | 8 of 8 | internal | |
| Memory used | 46.8 % | internal | |
| Disk free | 46.1 % | internal | |
| Payment provider | up | internal | |
| Revenue today | 2734.14 USD | private |
Alerts in the last hour
| Fault code | Severity | Status | Raised (UTC) | What HEART says |
|---|---|---|---|---|
connectivity.dependency-unreachableAn outside service or system it relies on cannot be reached. | error | resolved 22:42:30 | 22:40:05 | An outside service the shop needs cannot be reached. The payment provider is down: customers can browse but cannot pay. |
performance.memory-exhaustedMemory is (nearly) used up. | error | resolved 22:37:00 | 22:33:05 | Memory is nearly used up. Memory 93 % used, cache hit rate 29 %. clearCache reached its daily limit: escalated to the owner. |
performance.memory-exhaustedMemory is (nearly) used up. | error | resolved 22:30:00 | 22:29:05 | Memory is nearly used up. Memory 92 % used, cache hit rate 30 %: a cache eviction bug. |
performance.memory-exhaustedMemory is (nearly) used up. | error | resolved 22:26:00 | 22:25:05 | Memory is nearly used up. Memory 92 % used, cache hit rate 31 %: a cache eviction bug. |
software.crashedA program or component crashed. | warning | resolved 22:22:00 | 22:15:35 | A web worker has stopped answering. Worker 5 has not answered for 30 s. Escalated, not fixed: its Playbook is suspended. |
software.crash-loopA component keeps crashing and restarting. | error | resolved 22:22:00 | 22:15:05 | A web worker hangs again after every restart. Restarting does not help: it hangs again within seconds. Likely a bad job, request or release. A person must look. |
software.crashedA program or component crashed. | warning | resolved 22:15:00 | 22:14:05 | A web worker has stopped answering. Worker 5 has not answered for 30 s, again after its restart. |
software.crashedA program or component crashed. | warning | resolved 22:13:00 | 22:12:05 | A web worker has stopped answering. Worker 5 has not answered for 30 s. Its requests time out. |
storage.nearly-fullStorage is almost full (the system states the threshold). | warning | resolved 22:08:00 | 22:07:05 | The disk is nearly full. 9.8 % free (threshold 10 %). Debug logging left on: logs take 61 % of the disk. |
software.crashedA program or component crashed. | warning | resolved 22:04:00 | 22:03:05 | A web worker has stopped answering. Worker 3 has not answered for 30 s. Its requests time out. |
performance.slowResponses take much longer than normal. | warning | resolved 21:51:42 | 21:50:05 | Pages take much longer than normal. Pages take seconds: the database is slow. Escalated: no Playbook covers it. |
performance.overloadedMore work is arriving than can be handled. | warning | resolved 21:46:42 | 21:45:05 | More customers are arriving than the shop can serve. About 610 requests/s arriving, 120 can be served. A flash sale? Adding servers costs money: the owner decides. |
performance.backlogA queue of waiting work keeps growing. | warning | resolved 21:46:42 | 21:45:05 | Requests are piling up in the queue. Over 500 requests are waiting in the queue. |
What it changed, and who decided
A replay: the Action log of its one-hour story, the same changes every hour, as the downloadable simulator records them. On this page nothing is really asked, approved or changed.
| Time | Change | Started by | Result |
|---|---|---|---|
| 22:33 | clearCache {percent: 100} | rule clear-bloated-cache | denied: maxPerDay: clearCache already ran 2 times automatically in the last 24 hours. The Playbook stops here; escalated to the owner |
| 22:29 | clearCache {percent: 100} | rule clear-bloated-cache | succeeded (2 of maxPerDay 2) |
| 22:25 | clearCache {percent: 100} | rule clear-bloated-cache | succeeded: memory back to normal (1 of maxPerDay 2) |
| 22:15 | restartWorker {worker: 5} | rule restart-stuck-worker | denied: the Playbook is suspended; only a person can adopt it again. Escalated to the owner |
| 22:14 | restartWorker {worker: 5} | rule restart-stuck-worker | succeeded, but it did not help (2 in a row): the Playbook is suspended and software.crash-loop is escalated |
| 22:12 | restartWorker {worker: 5} | rule restart-stuck-worker | succeeded, but it did not help: worker 5 hung again (1 in a row) |
| 22:07 | rotateLogs {keepDays: 7} | rule rotate-full-logs | succeeded: logs rotated and compressed, the disk has room again |
| 22:03 | restartWorker {worker: 3} | rule restart-stuck-worker (adopted Playbook, on the allowlist) | succeeded: worker 3 restarted, and it helped |
| 21:56 | refundOrder | a caller with the owner key | refused 403 capability-not-allowed: refunds are never possible through HEART |
| 21:55 | deleteOrders | a caller with the owner key | refused 403 capability-not-allowed: deleting orders is never possible through HEART |
Now do it for your own device and monitor it here: https://heartcortex.ai/monitor. Start from a template, follow the HEART specifications, then register your device with its claim code.
What is inside: the code, how it works, and the specifications it follows · All demo devices
A demonstration that replays a one-hour story. Refreshes every 10 seconds.