# `Electric.Shapes.Consumer`
[🔗](https://github.com/electric-sql/electric/tree/%40core/sync-service%401.6.2/packages/sync-service/lib/electric/shapes/consumer.ex#L1)

# `initialize_shape_opts`

```elixir
@type initialize_shape_opts() :: %{
  :action =&gt; :create | :restore,
  optional(:otel_ctx) =&gt; Electric.Telemetry.OpenTelemetry.otel_ctx() | nil,
  optional(:feature_flags) =&gt; [binary()],
  optional(:is_subquery_shape?) =&gt; boolean()
}
```

# `activate_mocked_functions_from_test_process`

# `await_snapshot_start`

```elixir
@spec await_snapshot_start(Electric.stack_id(), Electric.shape_handle(), timeout()) ::
  :started | {:error, any()}
```

# `child_spec`

Returns a specification to start this module under a supervisor.

See `Supervisor`.

# `initialize_shape`

```elixir
@spec initialize_shape(pid(), Electric.Shapes.Shape.t(), initialize_shape_opts()) ::
  :ok
```

# `name`

# `process_buffered_txn_fragments`

# `register_for_changes`

# `start_link`

# `stop`

# `stop`

# `subscribe_materializer`

```elixir
@spec subscribe_materializer(Electric.stack_id(), Electric.shape_handle(), pid()) ::
  {:ok, Electric.Replication.LogOffset.t()}
```

# `whereis`

```elixir
@spec whereis(Electric.stack_id(), Electric.shape_handle()) :: pid() | nil
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
