# electric v1.4.14 - Table of Contents Postgres sync engine. Sync little subsets of your Postgres data into local apps and services. ## Pages - [Electric](readme.md) ## 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.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) - [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.LockBreakerConnection](Electric.Postgres.LockBreakerConnection.md): A Postgres connection that is used to break an abandoned lock. - [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.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.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.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.ChangeHandling](Electric.Shapes.Consumer.ChangeHandling.md) - [Electric.Shapes.Consumer.Materializer](Electric.Shapes.Consumer.Materializer.md) - [Electric.Shapes.Consumer.MoveIns](Electric.Shapes.Consumer.MoveIns.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.Snapshotter](Electric.Shapes.Consumer.Snapshotter.md) - [Electric.Shapes.ConsumerRegistry](Electric.Shapes.ConsumerRegistry.md) - [Electric.Shapes.DependencyLayers](Electric.Shapes.DependencyLayers.md) - [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)