ExAtlas.Fly.Tokens.ETSOwner (ExAtlas v0.5.0)

Copy Markdown View Source

Owns the shared :public :named_table ETS table used by every ExAtlas.Fly.Tokens.AppServer.

The table outlives individual AppServer crashes. Only :rest_for_one on the parent ExAtlas.Fly.Tokens.Supervisor can wipe it — by design, because that path also rebuilds every AppServer under the DynamicSupervisor, so the cache and its writers restart together.

ETS schema

{app_name, token, expires_at_unix_seconds}

:public so multiple AppServers can write concurrently. read_concurrency and write_concurrency are both on — cache reads are the hot path and parallel writes are expected under a cold-start thundering herd.

Summary

Functions

Returns a specification to start this module under a supervisor.

Returns the ETS table name this owner is managing.

Functions

child_spec(init_arg)

Returns a specification to start this module under a supervisor.

See Supervisor.

start_link(opts \\ [])

table_name(server \\ __MODULE__)

@spec table_name(GenServer.server()) :: atom()

Returns the ETS table name this owner is managing.