# electric v1.6.2 - API Reference

## Modules

- [Electric](Electric.md): 
## Configuration options
- [Electric.AdmissionControl](Electric.AdmissionControl.md): Simple admission control using ETS-based counters to limit concurrent requests per stack.
- [Electric.Application](Electric.Application.md)
- [Electric.AsyncDeleter](Electric.AsyncDeleter.md): A service that batches file/directory deletions by first moving them into a
per-stack trash directory and then, after a configurable interval, removing
the trash directory contents in one `rm -rf` operation.
- [Electric.ConcurrentStream](Electric.ConcurrentStream.md)
- [Electric.Config](Electric.Config.md)
- [Electric.Connection.Manager](Electric.Connection.Manager.md): Custom initialisation and reconnection logic for database connections.
- [Electric.Connection.Manager.ConnectionBackoff](Electric.Connection.Manager.ConnectionBackoff.md)
- [Electric.Connection.Manager.ConnectionResolver](Electric.Connection.Manager.ConnectionResolver.md)
- [Electric.Connection.Manager.Pool](Electric.Connection.Manager.Pool.md): A connection pool for managing multiple connections to a PostgreSQL database.

- [Electric.Connection.Manager.State](Electric.Connection.Manager.State.md)
- [Electric.Connection.Manager.Supervisor](Electric.Connection.Manager.Supervisor.md): Intermediate supervisor that supervises the Connection.Manager and ConnectionResolver processes.

- [Electric.Connection.Restarter](Electric.Connection.Restarter.md): Gen server responsible for shutting down and restarting the connection subsystem.
- [Electric.Connection.Supervisor](Electric.Connection.Supervisor.md): The main connection supervisor that looks after Connection.Manager.
- [Electric.CoreSupervisor](Electric.CoreSupervisor.md): A supervisor that starts the core components of the Electric system.
This is divided into two subsystems:
1. The connection subsystem (processes that may exit on a connection failure), started with Connection.Supervisor
2. The shape subsystem (processes that are resilient to connection failures), started with Shapes.Supervisor

- [Electric.LiveDashboard.Endpoint](Electric.LiveDashboard.Endpoint.md): Phoenix Endpoint for serving LiveDashboard on a separate port.
This runs independently from the main Plug-based HTTP server.
- [Electric.LiveDashboard.ErrorView](Electric.LiveDashboard.ErrorView.md): Error view for the LiveDashboard endpoint.
Handles rendering of HTTP errors.

- [Electric.LiveDashboard.FaviconController](Electric.LiveDashboard.FaviconController.md): Simple controller to handle favicon requests.
Returns a 204 No Content response to avoid 500 errors.

- [Electric.LiveDashboard.Router](Electric.LiveDashboard.Router.md): Phoenix Router for LiveDashboard.
Mounts the dashboard at the root path.

- [Electric.LogItems](Electric.LogItems.md): Defines the structure and how to create the items in the log that the electric client reads.
- [Electric.LsnTracker](Electric.LsnTracker.md)
- [Electric.MonitoredCoreSupervisor](Electric.MonitoredCoreSupervisor.md): A supervisor that starts and monitors the core components of the Electric system.
It needs to be a separate supervisor from the CoreSupervisor because of the way
the StatusMonitor works (see the rest_for_one comments below).

- [Electric.PersistentKV](Electric.PersistentKV.md)
- [Electric.PersistentKV.Filesystem](Electric.PersistentKV.Filesystem.md)
- [Electric.PersistentKV.Memory](Electric.PersistentKV.Memory.md)
- [Electric.PersistentKV.Mock](Electric.PersistentKV.Mock.md)
- [Electric.PersistentKV.Serialized](Electric.PersistentKV.Serialized.md): An implementation of PersistentKV that writes values serialised as JSON to the kv `backend`.

- [Electric.Plug.DeleteShapePlug](Electric.Plug.DeleteShapePlug.md)
- [Electric.Plug.HealthCheckPlug](Electric.Plug.HealthCheckPlug.md)
- [Electric.Plug.LabelProcessPlug](Electric.Plug.LabelProcessPlug.md): A plug that assists debugging by labelling processes that handle requests with
details about the request.
- [Electric.Plug.OptionsShapePlug](Electric.Plug.OptionsShapePlug.md)
- [Electric.Plug.Router](Electric.Plug.Router.md)
- [Electric.Plug.ServeShapePlug](Electric.Plug.ServeShapePlug.md): Plug pipeline for serving shape requests.
- [Electric.Plug.TraceContextPlug](Electric.Plug.TraceContextPlug.md): A plug that extracts trace context from incoming HTTP headers and sets it as the parent span.

- [Electric.Plug.UtilityRouter](Electric.Plug.UtilityRouter.md)
- [Electric.Plug.Utils](Electric.Plug.Utils.md): Utility functions for Electric endpoints, e.g. for parsing and validating
path and query parameters.

- [Electric.Plug.Utils.CORSHeaderPlug](Electric.Plug.Utils.CORSHeaderPlug.md)
- [Electric.Plug.Utils.PassAssignToOptsPlug](Electric.Plug.Utils.PassAssignToOptsPlug.md)
- [Electric.Postgres](Electric.Postgres.md)
- [Electric.Postgres.Configuration](Electric.Postgres.Configuration.md): Module for functions that configure Postgres in some way using
a provided connection.

- [Electric.Postgres.Identifiers](Electric.Postgres.Identifiers.md)
- [Electric.Postgres.Identifiers.StringSplitter](Electric.Postgres.Identifiers.StringSplitter.md): Utility module for splitting strings on a schema delimiter

- [Electric.Postgres.Inspector](Electric.Postgres.Inspector.md)
- [Electric.Postgres.Inspector.EtsInspector](Electric.Postgres.Inspector.EtsInspector.md): This serves as a write-through cache for caching the namespace and tablename as they occur in PG.
- [Electric.Postgres.LogicalReplication.Messages](Electric.Postgres.LogicalReplication.Messages.md)
- [Electric.Postgres.LogicalReplication.Messages.Begin](Electric.Postgres.LogicalReplication.Messages.Begin.md)
- [Electric.Postgres.LogicalReplication.Messages.Commit](Electric.Postgres.LogicalReplication.Messages.Commit.md)
- [Electric.Postgres.LogicalReplication.Messages.Delete](Electric.Postgres.LogicalReplication.Messages.Delete.md)
- [Electric.Postgres.LogicalReplication.Messages.Insert](Electric.Postgres.LogicalReplication.Messages.Insert.md)
- [Electric.Postgres.LogicalReplication.Messages.Message](Electric.Postgres.LogicalReplication.Messages.Message.md)
- [Electric.Postgres.LogicalReplication.Messages.Origin](Electric.Postgres.LogicalReplication.Messages.Origin.md)
- [Electric.Postgres.LogicalReplication.Messages.Relation](Electric.Postgres.LogicalReplication.Messages.Relation.md)
- [Electric.Postgres.LogicalReplication.Messages.Relation.Column](Electric.Postgres.LogicalReplication.Messages.Relation.Column.md)
- [Electric.Postgres.LogicalReplication.Messages.Truncate](Electric.Postgres.LogicalReplication.Messages.Truncate.md)
- [Electric.Postgres.LogicalReplication.Messages.Type](Electric.Postgres.LogicalReplication.Messages.Type.md)
- [Electric.Postgres.LogicalReplication.Messages.Unsupported](Electric.Postgres.LogicalReplication.Messages.Unsupported.md)
- [Electric.Postgres.LogicalReplication.Messages.Update](Electric.Postgres.LogicalReplication.Messages.Update.md)
- [Electric.Postgres.Lsn](Electric.Postgres.Lsn.md): Encoding, decoding and helper functions for the pg_lsn type.

- [Electric.Postgres.ReplicationClient](Electric.Postgres.ReplicationClient.md): A client module for Postgres logical replication.

- [Electric.Postgres.ReplicationClient.ConnectionSetup](Electric.Postgres.ReplicationClient.ConnectionSetup.md): This module encapsulates the initial setup of a replication connection opened by
`Electric.Postgres.ReplicationClient`.
- [Electric.Postgres.ReplicationClient.MessageConverter](Electric.Postgres.ReplicationClient.MessageConverter.md): Conversion of incoming Postgres logical replication messages
to internal event representation.
- [Electric.Postgres.ReplicationClient.State](Electric.Postgres.ReplicationClient.State.md)
- [Electric.Postgres.ReplicationConnection](Electric.Postgres.ReplicationConnection.md): Vendored and extended version of `Postgrex.ReplicationConnection`.
- [Electric.Postgres.SnapshotQuery](Electric.Postgres.SnapshotQuery.md)
- [Electric.Postgres.Xid](Electric.Postgres.Xid.md)
- [Electric.ProcessRegistry](Electric.ProcessRegistry.md)
- [Electric.Replication.Changes](Electric.Replication.Changes.md): This module contains structs that are intermediate representation of Postgres and Satellite transactions.
- [Electric.Replication.Changes.Column](Electric.Replication.Changes.Column.md)
- [Electric.Replication.Changes.Commit](Electric.Replication.Changes.Commit.md)
- [Electric.Replication.Changes.DeletedRecord](Electric.Replication.Changes.DeletedRecord.md)
- [Electric.Replication.Changes.NewRecord](Electric.Replication.Changes.NewRecord.md)
- [Electric.Replication.Changes.Relation](Electric.Replication.Changes.Relation.md)
- [Electric.Replication.Changes.Transaction](Electric.Replication.Changes.Transaction.md)
- [Electric.Replication.Changes.TransactionFragment](Electric.Replication.Changes.TransactionFragment.md): Represents a transaction or part of a transaction from the replication stream.
- [Electric.Replication.Changes.TruncatedRelation](Electric.Replication.Changes.TruncatedRelation.md)
- [Electric.Replication.Changes.UpdatedRecord](Electric.Replication.Changes.UpdatedRecord.md)
- [Electric.Replication.Eval](Electric.Replication.Eval.md): Utilities for evaluating and converting replication-related types.

- [Electric.Replication.Eval.Decomposer](Electric.Replication.Eval.Decomposer.md): Decomposes a query to an expanded DNF form.
- [Electric.Replication.Eval.Env](Electric.Replication.Eval.Env.md): Evaluation environment for parsing PostgreSQL expressions.
- [Electric.Replication.Eval.Env.BasicTypes](Electric.Replication.Eval.Env.BasicTypes.md): This module describes basic types, their categories, and if they are preferred within said category.
Information here is gathered from a system catalog `pg_type`, as described in
[PG docs](https://www.postgresql.org/docs/current/catalog-pg-type.html).
- [Electric.Replication.Eval.Env.ExplicitCasts](Electric.Replication.Eval.Env.ExplicitCasts.md): Postgres has explicit casts, achievable via `::type` calls.
This module defines implementations for a subset of known ones.
"function name" column here is a function name in this module.
- [Electric.Replication.Eval.Env.ImplicitCasts](Electric.Replication.Eval.Env.ImplicitCasts.md): List of all implicit casts in (raw) PostgreSQL. Does not account for custom casts, which
are discouraged anyway. If needed, this list can be extended in `Electric.Replication.Eval.Env.new/1`
- [Electric.Replication.Eval.Env.KnownFunctions](Electric.Replication.Eval.Env.KnownFunctions.md)
- [Electric.Replication.Eval.Expr](Electric.Replication.Eval.Expr.md): Parsed expression, available for evaluation using the runner

- [Electric.Replication.Eval.KnownDefinition](Electric.Replication.Eval.KnownDefinition.md): Special module to be `use`-d to define translation of PostgreSQL
operators and functions into Elixir calls.

- [Electric.Replication.Eval.Lookups](Electric.Replication.Eval.Lookups.md)
- [Electric.Replication.Eval.Parser](Electric.Replication.Eval.Parser.md)
- [Electric.Replication.Eval.Parser.Array](Electric.Replication.Eval.Parser.Array.md)
- [Electric.Replication.Eval.Parser.Const](Electric.Replication.Eval.Parser.Const.md)
- [Electric.Replication.Eval.Parser.Func](Electric.Replication.Eval.Parser.Func.md)
- [Electric.Replication.Eval.Parser.Ref](Electric.Replication.Eval.Parser.Ref.md)
- [Electric.Replication.Eval.Parser.RowExpr](Electric.Replication.Eval.Parser.RowExpr.md)
- [Electric.Replication.Eval.Parser.UnknownConst](Electric.Replication.Eval.Parser.UnknownConst.md)
- [Electric.Replication.Eval.Runner](Electric.Replication.Eval.Runner.md)
- [Electric.Replication.Eval.SqlGenerator](Electric.Replication.Eval.SqlGenerator.md): Converts a parsed WHERE clause AST back into a SQL string.
- [Electric.Replication.Eval.Walker](Electric.Replication.Eval.Walker.md)
- [Electric.Replication.LogOffset](Electric.Replication.LogOffset.md): Uniquely identifies an operation inside the shape log.
Combines a transaction ID with operation ID.

- [Electric.Replication.PersistentReplicationState](Electric.Replication.PersistentReplicationState.md)
- [Electric.Replication.PostgresInterop.Casting](Electric.Replication.PostgresInterop.Casting.md)
- [Electric.Replication.PublicationManager](Electric.Replication.PublicationManager.md): Manages a PostgreSQL publication for a given Electric stack, tracking shapes
and ensuring that the publication configuration matches the required set of
relations that need to be published for the shapes to function correctly.
- [Electric.Replication.PublicationManager.Configurator](Electric.Replication.PublicationManager.Configurator.md): Configures and maintains a PostgreSQL publication on behalf of
Electric.Replication.PublicationManager.RelationTracker.
- [Electric.Replication.PublicationManager.RelationTracker](Electric.Replication.PublicationManager.RelationTracker.md): Provides interface for shapes to register and deregister themselves
from a publication, and tracks the overall set of relations that need
to be published using reference counting.
- [Electric.Replication.PublicationManager.Supervisor](Electric.Replication.PublicationManager.Supervisor.md): Supervisor for the PublicationManager components.
- [Electric.Replication.SchemaReconciler](Electric.Replication.SchemaReconciler.md): Takes care of periodically reconciling the schema of the database with
the inspector caches and active shapes.
- [Electric.Replication.ShapeLogCollector](Electric.Replication.ShapeLogCollector.md): The ShapeLogCollector is responsible for collecting and processing
shape log operations and managing shape registrations.
- [Electric.Replication.ShapeLogCollector.FlushTracker](Electric.Replication.ShapeLogCollector.FlushTracker.md)
- [Electric.Replication.ShapeLogCollector.RequestBatcher](Electric.Replication.ShapeLogCollector.RequestBatcher.md): Module responsible for registering and unregistering shapes
with the ShapeLogCollector. It batches registration and
unregistration requests to avoid overwhelming the ShapeLogCollector
with frequent updates.
- [Electric.Replication.ShapeLogCollector.Supervisor](Electric.Replication.ShapeLogCollector.Supervisor.md): Supervisor for the ShapeLogCollector components.
- [Electric.Replication.TransactionBuilder](Electric.Replication.TransactionBuilder.md): Builds complete transactions from a stream of TransactionFragments.
- [Electric.Schema](Electric.Schema.md)
- [Electric.ShapeCache](Electric.ShapeCache.md)
- [Electric.ShapeCache.ExpiryManager](Electric.ShapeCache.ExpiryManager.md)
- [Electric.ShapeCache.InMemoryStorage](Electric.ShapeCache.InMemoryStorage.md)
- [Electric.ShapeCache.LogChunker](Electric.ShapeCache.LogChunker.md)
- [Electric.ShapeCache.PureFileStorage](Electric.ShapeCache.PureFileStorage.md): Main architecture & feature overview:
---
- 2 file formats: for snapshots and for main log, because snapshots have a requirement to be streamed as they're written
- Snapshot format: comma-separated JSON lines (for future copy-to-socket possibilities), one file per chunk, ends with a `0x04` byte (end-of-transmission) to distinguish EOF because reader is up to date with writer from EOF because writer is finished
- Main log format:
- Log file: binary file, formatted as
- [Electric.ShapeCache.PureFileStorage.FileInfo](Electric.ShapeCache.PureFileStorage.FileInfo.md)
- [Electric.ShapeCache.PureFileStorage.KeyIndex](Electric.ShapeCache.PureFileStorage.KeyIndex.md)
- [Electric.ShapeCache.PureFileStorage.SharedRecords](Electric.ShapeCache.PureFileStorage.SharedRecords.md)
- [Electric.ShapeCache.ShapeCleaner](Electric.ShapeCache.ShapeCleaner.md): Removes a shape (consumer, status entry, on-disk data and publication entry) on demand.

- [Electric.ShapeCache.ShapeCleaner.CleanupTaskSupervisor](Electric.ShapeCache.ShapeCleaner.CleanupTaskSupervisor.md)
- [Electric.ShapeCache.ShapeStatus](Electric.ShapeCache.ShapeStatus.md): Keeps track of shape state.
- [Electric.ShapeCache.ShapeStatus.ShapeDb](Electric.ShapeCache.ShapeStatus.ShapeDb.md): SQLite-backed persistent storage for shape metadata.
- [Electric.ShapeCache.ShapeStatus.ShapeDb.Migrator](Electric.ShapeCache.ShapeStatus.ShapeDb.Migrator.md)
- [Electric.ShapeCache.ShapeStatus.ShapeDb.PoolRegistry](Electric.ShapeCache.ShapeStatus.ShapeDb.PoolRegistry.md): Manages pool registration for a stack. Contains the `exclusive_mode` logic,
so that when enabled, the same write connection is returned for reads and
writes.
- [Electric.ShapeCache.ShapeStatus.ShapeDb.Query](Electric.ShapeCache.ShapeStatus.ShapeDb.Query.md)
- [Electric.ShapeCache.ShapeStatus.ShapeDb.Sqlite3](Electric.ShapeCache.ShapeStatus.ShapeDb.Sqlite3.md): Drop-in shim over `:esqlite3` that mirrors the subset of the `Exqlite.Sqlite3` API
used by `Connection` and `Query`.
- [Electric.ShapeCache.ShapeStatus.ShapeDb.Statistics](Electric.ShapeCache.ShapeStatus.ShapeDb.Statistics.md): Keeps track of the number of active SQLite connections using an
`:atomics`-based counter.

- [Electric.ShapeCache.ShapeStatus.ShapeDb.Supervisor](Electric.ShapeCache.ShapeStatus.ShapeDb.Supervisor.md)
- [Electric.ShapeCache.ShapeStatus.ShapeDb.WriteBuffer](Electric.ShapeCache.ShapeStatus.ShapeDb.WriteBuffer.md): Buffers SQLite metadata writes using ETS for immediate return to callers,
then batches and flushes to SQLite in the background.
- [Electric.ShapeCache.ShapeStatusOwner](Electric.ShapeCache.ShapeStatusOwner.md): Owns the ETS table and the ShapeStatus state.
- [Electric.Shapes](Electric.Shapes.md)
- [Electric.Shapes.Api](Electric.Shapes.Api.md)
- [Electric.Shapes.Api.Encoder](Electric.Shapes.Api.Encoder.md)
- [Electric.Shapes.Api.Encoder.JSON](Electric.Shapes.Api.Encoder.JSON.md)
- [Electric.Shapes.Api.Encoder.SSE](Electric.Shapes.Api.Encoder.SSE.md)
- [Electric.Shapes.Api.Encoder.Term](Electric.Shapes.Api.Encoder.Term.md)
- [Electric.Shapes.Api.Error](Electric.Shapes.Api.Error.md)
- [Electric.Shapes.Api.Options](Electric.Shapes.Api.Options.md)
- [Electric.Shapes.Api.Params](Electric.Shapes.Api.Params.md)
- [Electric.Shapes.Api.Params.ColumnList](Electric.Shapes.Api.Params.ColumnList.md)
- [Electric.Shapes.Api.Params.JsonOrMapStringParams](Electric.Shapes.Api.Params.JsonOrMapStringParams.md): Custom Ecto type that accepts params as either:
1. A JSON string (e.g., "{"1":"value1","2":"value2"}")
2. A map with string values (for backwards compatibility)

- [Electric.Shapes.Api.Params.SubsetParams](Electric.Shapes.Api.Params.SubsetParams.md)
- [Electric.Shapes.Api.Request](Electric.Shapes.Api.Request.md)
- [Electric.Shapes.Api.Response](Electric.Shapes.Api.Response.md)
- [Electric.Shapes.Api.SseState](Electric.Shapes.Api.SseState.md)
- [Electric.Shapes.Consumer](Electric.Shapes.Consumer.md)
- [Electric.Shapes.Consumer.EventHandler.Subqueries.Buffering](Electric.Shapes.Consumer.EventHandler.Subqueries.Buffering.md)
- [Electric.Shapes.Consumer.EventHandler.Subqueries.Steady](Electric.Shapes.Consumer.EventHandler.Subqueries.Steady.md)
- [Electric.Shapes.Consumer.EventHandlerBuilder](Electric.Shapes.Consumer.EventHandlerBuilder.md)
- [Electric.Shapes.Consumer.Materializer](Electric.Shapes.Consumer.Materializer.md)
- [Electric.Shapes.Consumer.PendingTxn](Electric.Shapes.Consumer.PendingTxn.md): Tracks metadata for an in-progress transaction during direct fragment-to-storage streaming of
changes.
- [Electric.Shapes.Consumer.SetupEffects](Electric.Shapes.Consumer.SetupEffects.md)
- [Electric.Shapes.Consumer.Snapshotter](Electric.Shapes.Consumer.Snapshotter.md)
- [Electric.Shapes.Consumer.Subqueries.ActiveMove](Electric.Shapes.Consumer.Subqueries.ActiveMove.md)
- [Electric.Shapes.Consumer.Subqueries.IndexChanges](Electric.Shapes.Consumer.Subqueries.IndexChanges.md): Determines subquery index effects for dependency move events.
- [Electric.Shapes.Consumer.Subqueries.MoveBroadcast](Electric.Shapes.Consumer.Subqueries.MoveBroadcast.md)
- [Electric.Shapes.Consumer.Subqueries.MoveQueue](Electric.Shapes.Consumer.Subqueries.MoveQueue.md): Multi-dependency move queue. Tracks move_in/move_out operations per dependency index,
with deduplication and redundancy elimination scoped per dependency.
- [Electric.Shapes.Consumer.Subqueries.RefResolver](Electric.Shapes.Consumer.Subqueries.RefResolver.md)
- [Electric.Shapes.Consumer.Subqueries.ShapeInfo](Electric.Shapes.Consumer.Subqueries.ShapeInfo.md)
- [Electric.Shapes.Consumer.Subqueries.Views](Electric.Shapes.Consumer.Subqueries.Views.md)
- [Electric.Shapes.Consumer.TransactionConverter](Electric.Shapes.Consumer.TransactionConverter.md)
- [Electric.Shapes.ConsumerRegistry](Electric.Shapes.ConsumerRegistry.md)
- [Electric.Shapes.DependencyLayers](Electric.Shapes.DependencyLayers.md)
- [Electric.Shapes.DnfPlan](Electric.Shapes.DnfPlan.md): A DNF sidecar plan compiled from a shape's WHERE clause.
- [Electric.Shapes.DynamicConsumerSupervisor](Electric.Shapes.DynamicConsumerSupervisor.md): Responsible for managing shape consumer processes.
- [Electric.Shapes.EventRouter](Electric.Shapes.EventRouter.md): Routes replication events to shapes, returning per-shape transaction fragments.
- [Electric.Shapes.Filter](Electric.Shapes.Filter.md): Responsible for knowing which shapes are affected by a change.
- [Electric.Shapes.Filter.Index](Electric.Shapes.Filter.Index.md): Efficiently finds shapes that are affected by a change, specifically for a particular operation in where clause.
- [Electric.Shapes.Filter.Indexes.EqualityIndex](Electric.Shapes.Filter.Indexes.EqualityIndex.md): Efficiently finds shapes that are affected by a change when the shape's where clause has `field = const` in it.
- [Electric.Shapes.Filter.Indexes.InclusionIndex](Electric.Shapes.Filter.Indexes.InclusionIndex.md): Efficiently finds shapes that are affected by a change when the shape's where clause has `array_field @> const_array` in it.
- [Electric.Shapes.Filter.WhereCondition](Electric.Shapes.Filter.WhereCondition.md): Responsible for knowing which shapes are affected by a change to a specific table.
- [Electric.Shapes.PartialModes](Electric.Shapes.PartialModes.md)
- [Electric.Shapes.Partitions](Electric.Shapes.Partitions.md): Keeps track of shapes defined on partitioned tables and re-writes
transactions to send an equivalent change on the root partitioned table for
every change to a partition of that table.

- [Electric.Shapes.Querying](Electric.Shapes.Querying.md)
- [Electric.Shapes.Shape](Electric.Shapes.Shape.md): Struct describing the requested shape

- [Electric.Shapes.Shape.Comparable](Electric.Shapes.Shape.Comparable.md)
- [Electric.Shapes.Shape.Subset](Electric.Shapes.Shape.Subset.md)
- [Electric.Shapes.Shape.Validators](Electric.Shapes.Shape.Validators.md)
- [Electric.Shapes.Supervisor](Electric.Shapes.Supervisor.md): Supervisor responsible for the entire shape subsystem.
- [Electric.Shapes.WhereClause](Electric.Shapes.WhereClause.md)
- [Electric.StackConfig](Electric.StackConfig.md)
- [Electric.StackSupervisor](Electric.StackSupervisor.md): Root supervisor that starts a stack of processes to serve shapes.
- [Electric.StackSupervisor.Telemetry](Electric.StackSupervisor.Telemetry.md)
- [Electric.Telemetry](Electric.Telemetry.md)
- [Electric.Telemetry.IntervalTimer](Electric.Telemetry.IntervalTimer.md): Times intervals between calls to `start_interval/2`. This is useful if you
want to find out which part of a process took the longest time. It works
out simpler than wrapping each part of the process in a timer, and
guarentees no gaps in the timings.
- [Electric.Telemetry.OpenTelemetry](Electric.Telemetry.OpenTelemetry.md): This module implements an API to cover parts of the code with tracing spans that are then
exported using the OpenTelemetry protocol.
- [Electric.Telemetry.OpenTelemetry.Config](Electric.Telemetry.OpenTelemetry.Config.md)
- [Electric.Telemetry.Sampler](Electric.Telemetry.Sampler.md): Decides which spans should be included and how often.
- [Electric.Telemetry.Sentry](Electric.Telemetry.Sentry.md)
- [Electric.Timeline](Electric.Timeline.md): Module exporting functions for handling Postgres timelines.
Verifies the Postgres ID and its timeline.

- [Electric.Utils](Electric.Utils.md)
- [Electric.Walkable](Electric.Walkable.md)
- [PgInterop.Array](PgInterop.Array.md)
- [PgInterop.Interval](PgInterop.Interval.md): PostgreSQL interval representation.
- [PgInterop.Interval.ISO8601AlternativeParser](PgInterop.Interval.ISO8601AlternativeParser.md): This module parses alternative ISO-8601 duration strings into Interval structs.

- [PgInterop.Interval.ISO8601Parser](PgInterop.Interval.ISO8601Parser.md): This module parses ISO-8601 duration strings into Interval structs.
- [PgInterop.Interval.Iso8601Formatter](PgInterop.Interval.Iso8601Formatter.md)
- [PgInterop.Interval.PostgresAndSQLParser](PgInterop.Interval.PostgresAndSQLParser.md): This module parses Postgres classic and SQL strings

- [PgInterop.Postgrex.Extensions.PgLsn](PgInterop.Postgrex.Extensions.PgLsn.md)
- [PgInterop.Postgrex.Extensions.PgSnapshot](PgInterop.Postgrex.Extensions.PgSnapshot.md)
- [PgInterop.Sublink](PgInterop.Sublink.md)

- Exceptions
  - [Electric.DbConfigurationError](Electric.DbConfigurationError.md)
  - [Electric.DbConnectionError](Electric.DbConnectionError.md)
  - [Electric.ShapeCache.ShapeStatus.ShapeDb.Error](Electric.ShapeCache.ShapeStatus.ShapeDb.Error.md)
  - [Electric.ShapeCache.Storage.Error](Electric.ShapeCache.Storage.Error.md)
  - [Electric.Shapes.Querying.QueryError](Electric.Shapes.Querying.QueryError.md)
  - [Electric.SnapshotError](Electric.SnapshotError.md)

