├── .dockerignore ├── .github └── workflows │ └── github-actions.yml ├── .gitignore ├── .golangci.yml ├── .mockery.yml ├── Dockerfile ├── LICENSE ├── Makefile ├── README.md ├── cmd └── wal-listener │ ├── init.go │ └── main.go ├── config_example.yml ├── docker ├── docker-compose.yml └── scripts │ ├── create_my_table.sql │ ├── create_slot.sql │ ├── create_users.sql │ └── init.sql ├── go.mod ├── go.sum ├── internal ├── config │ ├── config.go │ ├── config_test.go │ └── metrics.go ├── listener │ ├── listener.go │ ├── listener_mocks_test.go │ ├── listener_test.go │ ├── repository.go │ └── transaction │ │ ├── data.go │ │ ├── monitor_mock_test.go │ │ ├── parser.go │ │ ├── parser_test.go │ │ ├── pg_type.go │ │ ├── protocol.go │ │ ├── wal.go │ │ └── wal_test.go └── publisher │ ├── event.go │ ├── kafka.go │ ├── nats.go │ ├── nats_test.go │ ├── pubsub.go │ ├── pubsub_connection.go │ └── rabbit.go └── wal-listener.png /.dockerignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ihippik/wal-listener/HEAD/.dockerignore -------------------------------------------------------------------------------- /.github/workflows/github-actions.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ihippik/wal-listener/HEAD/.github/workflows/github-actions.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ihippik/wal-listener/HEAD/.gitignore -------------------------------------------------------------------------------- /.golangci.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ihippik/wal-listener/HEAD/.golangci.yml -------------------------------------------------------------------------------- /.mockery.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ihippik/wal-listener/HEAD/.mockery.yml -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ihippik/wal-listener/HEAD/Dockerfile -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ihippik/wal-listener/HEAD/LICENSE -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ihippik/wal-listener/HEAD/Makefile -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ihippik/wal-listener/HEAD/README.md -------------------------------------------------------------------------------- /cmd/wal-listener/init.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ihippik/wal-listener/HEAD/cmd/wal-listener/init.go -------------------------------------------------------------------------------- /cmd/wal-listener/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ihippik/wal-listener/HEAD/cmd/wal-listener/main.go -------------------------------------------------------------------------------- /config_example.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ihippik/wal-listener/HEAD/config_example.yml -------------------------------------------------------------------------------- /docker/docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ihippik/wal-listener/HEAD/docker/docker-compose.yml -------------------------------------------------------------------------------- /docker/scripts/create_my_table.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ihippik/wal-listener/HEAD/docker/scripts/create_my_table.sql -------------------------------------------------------------------------------- /docker/scripts/create_slot.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ihippik/wal-listener/HEAD/docker/scripts/create_slot.sql -------------------------------------------------------------------------------- /docker/scripts/create_users.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ihippik/wal-listener/HEAD/docker/scripts/create_users.sql -------------------------------------------------------------------------------- /docker/scripts/init.sql: -------------------------------------------------------------------------------- 1 | CREATE DATABASE my_db; 2 | -------------------------------------------------------------------------------- /go.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ihippik/wal-listener/HEAD/go.mod -------------------------------------------------------------------------------- /go.sum: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ihippik/wal-listener/HEAD/go.sum -------------------------------------------------------------------------------- /internal/config/config.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ihippik/wal-listener/HEAD/internal/config/config.go -------------------------------------------------------------------------------- /internal/config/config_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ihippik/wal-listener/HEAD/internal/config/config_test.go -------------------------------------------------------------------------------- /internal/config/metrics.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ihippik/wal-listener/HEAD/internal/config/metrics.go -------------------------------------------------------------------------------- /internal/listener/listener.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ihippik/wal-listener/HEAD/internal/listener/listener.go -------------------------------------------------------------------------------- /internal/listener/listener_mocks_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ihippik/wal-listener/HEAD/internal/listener/listener_mocks_test.go -------------------------------------------------------------------------------- /internal/listener/listener_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ihippik/wal-listener/HEAD/internal/listener/listener_test.go -------------------------------------------------------------------------------- /internal/listener/repository.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ihippik/wal-listener/HEAD/internal/listener/repository.go -------------------------------------------------------------------------------- /internal/listener/transaction/data.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ihippik/wal-listener/HEAD/internal/listener/transaction/data.go -------------------------------------------------------------------------------- /internal/listener/transaction/monitor_mock_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ihippik/wal-listener/HEAD/internal/listener/transaction/monitor_mock_test.go -------------------------------------------------------------------------------- /internal/listener/transaction/parser.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ihippik/wal-listener/HEAD/internal/listener/transaction/parser.go -------------------------------------------------------------------------------- /internal/listener/transaction/parser_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ihippik/wal-listener/HEAD/internal/listener/transaction/parser_test.go -------------------------------------------------------------------------------- /internal/listener/transaction/pg_type.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ihippik/wal-listener/HEAD/internal/listener/transaction/pg_type.go -------------------------------------------------------------------------------- /internal/listener/transaction/protocol.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ihippik/wal-listener/HEAD/internal/listener/transaction/protocol.go -------------------------------------------------------------------------------- /internal/listener/transaction/wal.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ihippik/wal-listener/HEAD/internal/listener/transaction/wal.go -------------------------------------------------------------------------------- /internal/listener/transaction/wal_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ihippik/wal-listener/HEAD/internal/listener/transaction/wal_test.go -------------------------------------------------------------------------------- /internal/publisher/event.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ihippik/wal-listener/HEAD/internal/publisher/event.go -------------------------------------------------------------------------------- /internal/publisher/kafka.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ihippik/wal-listener/HEAD/internal/publisher/kafka.go -------------------------------------------------------------------------------- /internal/publisher/nats.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ihippik/wal-listener/HEAD/internal/publisher/nats.go -------------------------------------------------------------------------------- /internal/publisher/nats_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ihippik/wal-listener/HEAD/internal/publisher/nats_test.go -------------------------------------------------------------------------------- /internal/publisher/pubsub.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ihippik/wal-listener/HEAD/internal/publisher/pubsub.go -------------------------------------------------------------------------------- /internal/publisher/pubsub_connection.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ihippik/wal-listener/HEAD/internal/publisher/pubsub_connection.go -------------------------------------------------------------------------------- /internal/publisher/rabbit.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ihippik/wal-listener/HEAD/internal/publisher/rabbit.go -------------------------------------------------------------------------------- /wal-listener.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ihippik/wal-listener/HEAD/wal-listener.png --------------------------------------------------------------------------------