# Wallaby > Postgres CDC Engine for .NET Stream Postgres changes into search indexes, vector stores and event streams. ## Table of Contents ### Usage - [CDC vs dual writes for .NET search indexing](https://wallabycdc.net/why-wallaby.md): Why change data capture beats publish-on-write for keeping search indexes and read models in sync, and what Wallaby handles for you. - [How It Works](https://wallabycdc.net/how-it-works.md): Every data flow in the engine on one interactive diagram: live changes, backfill, dependent fan-out, slot loss, and sink outages. - [Postgres CDC in .NET: getting started](https://wallabycdc.net/getting-started.md): Postgres prerequisites, package selection, and first-run configuration for adding Wallaby CDC to a .NET service. - [Mappings](https://wallabycdc.net/mappings.md): Entity mappings: routing an entity to a sink destination - transforms, mapping classes, document ids, backfill versions, and batch semantics. - [Backfill](https://wallabycdc.net/backfill.md): Automatic backfill of new tables, version-triggered reindexing, and gap-free merging with live changes. - [Keep RAG embeddings fresh with Postgres CDC](https://wallabycdc.net/rag.md): Keep embeddings and RAG corpora in sync with Postgres from .NET using CDC: destination-side embedding, the pgvector sink, and re-embedding on model changes. - [External Slots](https://wallabycdc.net/external-slots.md): Provisioning and maintaining publications and replication slots for external pgoutput consumers like Airbyte, Debezium, or Fivetran. - [Configuration](https://wallabycdc.net/configuration.md): Wallaby's configuration options and how to set them, from slot and publication names to batching, retries, and large-transaction handling. - [Testing](https://wallabycdc.net/testing.md): End-to-end pipeline testing with the Wallaby.Testing package: real logical replication, production transforms, and captured sink output. ### Storage Providers - [Choosing a Wallaby storage provider](https://wallabycdc.net/providers/overview.md): Choosing between the EF Core, Marten and plain-table providers for Postgres change data capture in .NET, and what a storage provider contributes. - [Postgres CDC for EF Core](https://wallabycdc.net/providers/entity-framework-core.md): Postgres change data capture driven by your EF Core model in .NET: registration, enrichment transforms, dependent tables, and replica identity migrations. - [Postgres CDC for Marten](https://wallabycdc.net/providers/marten.md): Postgres change data capture for Marten documents in .NET: JSONB rehydration through the store serializer, soft deletes, multi-tenancy, and backfills. - [Postgres CDC without an ORM](https://wallabycdc.net/providers/tables.md): Postgres change data capture with no ORM in .NET: annotated POCOs, naming conventions, keys, Dapper-style transforms, column selection and backfills. #### EF Core - [Multi-tenancy (EF Core)](https://wallabycdc.net/providers/entity-framework-core/multi-tenancy.md): Tenant-scoped DbContexts and per-tenant destinations derived from the changed row's own data in the EF Core provider. #### Marten - [Multi-tenancy (Marten)](https://wallabycdc.net/providers/marten/multi-tenancy.md): Conjoined multi-tenancy with Marten: tenant ids captured in document keys, ScopedByTenant, and tenant-scoped query sessions. ### Sinks - [Sink destinations for Postgres CDC in .NET](https://wallabycdc.net/sinks.md): Every Wallaby destination in one place: Meilisearch, Elasticsearch, OpenSearch, Kafka, pgvector, HTTP webhooks, or your own ISink, and the guarantees they all share. - [Sync Postgres to Meilisearch from .NET](https://wallabycdc.net/sinks/meilisearch.md): Keep a Meilisearch index in sync with Postgres from C#: install Wallaby.Sinks.Meilisearch, map an EF Core entity or Marten document, and changes stream in live. - [Send Postgres changes to a webhook from .NET](https://wallabycdc.net/sinks/http.md): POST Postgres inserts, updates and deletes to any HTTP endpoint from C#: JSON envelope, Standard Webhooks signing, idempotency keys, at-least-once delivery. - [Stream Postgres changes to Kafka from .NET](https://wallabycdc.net/sinks/kafka.md): Produce Postgres inserts, updates and deletes to Kafka topics from C#: keyed by document id, tombstone deletes, commit order preserved, no Debezium or Connect. - [Sync Postgres to Elasticsearch from .NET](https://wallabycdc.net/sinks/elasticsearch.md): Keep Elasticsearch indices in sync with Postgres from C#: bulk upserts and deletes driven by logical replication, mapped from your EF Core or Marten model. - [Sync Postgres to OpenSearch from .NET](https://wallabycdc.net/sinks/opensearch.md): Keep OpenSearch indexes in sync with Postgres from C#: bulk upserts and deletes via logical replication. Works with self-managed and Amazon OpenSearch Service. - [Sync Postgres to pgvector embeddings from .NET](https://wallabycdc.net/sinks/pgvector.md): Keep pgvector tables and embeddings in sync with Postgres from C#: sink-side embedding re-embeds only changed text, so restarts and backfills never re-embed. - [Write a custom Postgres CDC sink in .NET](https://wallabycdc.net/sinks/custom.md): Implement ISink to deliver Postgres change batches anywhere from C#: the delivery contract, retry and permanent-failure semantics, purge, and registration. ### Operations - [Observability](https://wallabycdc.net/operations/observability.md): The OpenTelemetry metrics and traces built into Wallaby and how to add them to your application's telemetry pipeline. - [Health Checks](https://wallabycdc.net/operations/health-checks.md): ASP.NET Core health check for the Wallaby background service across leader and standby nodes. - [External Control](https://wallabycdc.net/operations/external-control.md): Wallaby.Client: suspend, resume, trigger backfills, and inspect a Wallaby installation from any process with a connection string — no Wallaby host reference required. - [Upgrading Wallaby](https://wallabycdc.net/operations/upgrades.md): How Wallaby versions and migrates its internal state schema across package upgrades. - [Upgrading Postgres](https://wallabycdc.net/operations/major-version-upgrades.md): Suspending Wallaby so RDS/Aurora can run a Postgres major-version upgrade: drop the managed replication slots, upgrade, resume, re-backfill.