# PgOutput2Json > A .NET library that streams PostgreSQL changes as JSON, over logical replication, to your application or to Kafka, RabbitMQ, Redis and other outputs. It reads the built-in pgoutput plugin, so PostgreSQL needs no extension. Delivery is at-least-once, and every message carries a deduplication key. .NET 8, 9 and 10. The library is under active development. Source: https://github.com/PgOutput2Json/PgOutput2Json ## Start here - [Getting started](https://pgoutput2json.net/docs/getting-started/): Enable logical replication, create a replication user and a publication, and receive the first JSON change events in a .NET worker. - [Change events](https://pgoutput2json.net/docs/change-events/): The JSON format of a change event, the message key and its dependence on the replica identity, and compact mode. - [Permanent replication slots](https://pgoutput2json.net/docs/replication-slots/): Keep the changes made while the worker is stopped with a permanent replication slot, and what a forgotten slot costs. - [Delivery and deduplication](https://pgoutput2json.net/docs/deduplication/): Delivery is at-least-once. How replayed changes reach consumers, and how to deduplicate them with the w and n key. ## Outputs - [Kafka](https://pgoutput2json.net/docs/outputs/kafka/): Publish PostgreSQL changes to a Kafka topic with PgOutput2Json.Kafka, and its delivery guarantees. - [RabbitMQ](https://pgoutput2json.net/docs/outputs/rabbitmq/): Publish PostgreSQL changes to a RabbitMQ topic exchange with PgOutput2Json.RabbitMq. - [RabbitMQ Streams](https://pgoutput2json.net/docs/outputs/rabbitmq-streams/): Publish PostgreSQL changes to RabbitMQ streams and super streams with PgOutput2Json.RabbitMqStreams. - [Redis](https://pgoutput2json.net/docs/outputs/redis/): Publish PostgreSQL changes to Redis streams or Pub/Sub channels with PgOutput2Json.Redis. - [SQLite](https://pgoutput2json.net/docs/outputs/sqlite/): Copy changed PostgreSQL rows to a SQLite database with PgOutput2Json.Sqlite. - [MongoDB](https://pgoutput2json.net/docs/outputs/mongodb/): Copy changed PostgreSQL rows to MongoDB collections with PgOutput2Json.MongoDb. - [Amazon Kinesis](https://pgoutput2json.net/docs/outputs/kinesis/): Publish PostgreSQL changes to Amazon Kinesis with PgOutput2Json.Kinesis. Delivery is at-least-once. - [Amazon DynamoDB](https://pgoutput2json.net/docs/outputs/dynamodb/): Copy changed PostgreSQL rows to Amazon DynamoDB tables with PgOutput2Json.DynamoDb. - [Azure Event Hubs](https://pgoutput2json.net/docs/outputs/event-hubs/): Publish PostgreSQL changes to Azure Event Hubs with PgOutput2Json.AzureEventHubs. - [Webhooks](https://pgoutput2json.net/docs/outputs/webhooks/): Deliver PostgreSQL changes in batches to an HTTP endpoint with PgOutput2Json.Webhooks. ## Reference - [Configuration](https://pgoutput2json.net/docs/configuration/): The PgOutput2JsonBuilder methods and the JSON options, with their defaults. ## Optional - [All the docs in one file](https://pgoutput2json.net/llms-full.txt): every page above as plain markdown