In order to control routing dynamically, we need to expose some Beamer
information to the proxy.
The `beamer_writer` value is used by the proxy to keep track of which
node should receive write requests. When it changes due to a failover,
the proxy will update after seeing a new value in this header. We
provide this to the proxy in the `X-Writer` response header.
The `beamer_last_txn` value will be used to control writer pinning.
Setting it in the cookie here is the first stage of this. The second
stage will be to catch situations where a reader gets a request where
this header value is set to a large value than the reader has seen; when
that happens if means there's a risk of reading stale data, so rather
than serve the request we should request the proxy to reproxy it back to
the writer.
We also set `X-Kamal-Target` in the response to match the
`X-Kamal-Target` that was set in the request; this lets us see which
proxy target served each request, which is useful for diagnostics.
There has been a bit of drift between actual schemas in production and
what's implied by the migrations.
And fixed some tests that were relying on everyone always watching.
ref: https://fizzy.37signals.com/5986089/cards/2322
* main: (41 commits)
Mount our backup vol.
"Postpones" -> "Closes in"
Prevent view transition animations on page refreshes
dep: update AR::Tenanted to allow config adapter registration
More fine-grained approach to listen for broadcasted refresh signals
Reuse existing cache invalidation logic that replaced this helper
Show completed cards when filtering cards by creator
Refactor to remove workflows styles
Display column when viewing cards in a grid (filtering)
Dial back title size on perma
Add bubble when The Stream has bubbled cards
This got too wide in the collapsed state
Allow selecting default color
Style
Focus filter input with a hotkey, adjust sizing
`esc` clears filters
beamer-testbed configures fizzy-01 to be the writer
beamer-testbed can connect to queenbee on the host
beamer-testbed runs on host port 3006
Activity bumps cards to the top of triaged columns, too
...