StateKey) (any, bool) Set(key StateKey, value any) Pop(key StateKey) (any, bool) Upsert(key StateKey, value any, cb UpsertCb) } type SharedMemory interface { SharedMemoryAccessor Load(ctx context.Context, r io.Reader) error Store(ctx context.Context) (io.Reader, error) Clear() } 内部実装はconcurrent-map (shard毎ロック)。公式のsync.Mapはwrite-once-read-many最適され てたりするのでやめた。 concurrent-swiss-map (最適なメモリレイアウト+ SSEの活用等で高速lookup が可能なSwissMap のスレッドセーフ版)はまだちゃんとさわれていないが感触早い。 Load/Storeはリー ダー状態をDBへ永続化し新リーダーに継承させるための機能で、 gobでシリアライズしている。