floo.app.toml; the next deploy provisions it and injects the
connection URL. Managed services covers the shared
lifecycle: declaring, attaching credentials, and removal.
Managed Redis is cache-only: treat its contents as disposable. floo makes no backup, restore, or durability guarantee for it; keep authoritative data in Postgres.
floo.app.toml
What gets injected
A named Redis handle providesREDIS_URL_<NAME> in upper case. [managed.cache]
injects REDIS_URL_CACHE.
One handle is one instance
A managed Redis handle maps to exactly one instance, so every service that declaresmanaged = ["redis:cache"] receives the same REDIS_URL_CACHE. A web
process enqueuing a job and a worker draining it share one Redis by construction.
The entire queue can be lost, so queued work must be regenerable from
authoritative records in Postgres.
Separate concerns with named instances
To keep cache eviction away from your job queue, declare separate instances:REDIS_URL_CACHE and REDIS_URL_QUEUE, two physically separate
databases.
Each instance is one logical database. There is no SELECT n index switching,
so named instances are how you separate concerns. A Rails app can point its
cache store at REDIS_URL_CACHE and Action Cable at REDIS_URL_QUEUE. Use
Sidekiq on REDIS_URL_QUEUE only for jobs your app can regenerate from
Postgres; a separate instance adds no durability guarantee.
Health and throughput limits
floo can reject data-plane traffic when a database exceeds its request rate or its command allowance. A TCP connection or aPING does not prove application
commands are getting through. Reduce request concurrency or batch commands,
then contact
team@getfloo.com
to raise managed throughput.
Run the doctor when a Redis database fails to appear or to go away:
provision_failed or deprovision_failed),
with the action to take, and exits non-zero when it finds one. Its output never
contains credentials.
Debug a connection issue
env.managed including the Redis handle, and that
REDIS_URL_<NAME> appears in floo env list.
Managed services
The shared lifecycle: declare, attach, inspect, remove.
Postgres
Connection values, pgvector, and preview database branches.