{"id":26183545,"url":"https://github.com/choria-io/stream-replicator","last_synced_at":"2025-04-14T23:37:33.370Z","repository":{"id":38454643,"uuid":"467871151","full_name":"choria-io/stream-replicator","owner":"choria-io","description":"Data replication for NATS JetStream","archived":false,"fork":false,"pushed_at":"2024-11-11T07:48:28.000Z","size":12203,"stargazers_count":16,"open_issues_count":3,"forks_count":5,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-11T19:21:47.918Z","etag":null,"topics":["jetstream","nats","replication","streaming"],"latest_commit_sha":null,"homepage":"https://choria.io","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/choria-io.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-03-09T10:01:28.000Z","updated_at":"2025-01-09T22:41:25.000Z","dependencies_parsed_at":"2023-12-07T15:28:26.616Z","dependency_job_id":"8db93e7a-f805-42a0-a84f-5e7d58d97c06","html_url":"https://github.com/choria-io/stream-replicator","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/choria-io%2Fstream-replicator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/choria-io%2Fstream-replicator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/choria-io%2Fstream-replicator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/choria-io%2Fstream-replicator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/choria-io","download_url":"https://codeload.github.com/choria-io/stream-replicator/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248981161,"owners_count":21193143,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["jetstream","nats","replication","streaming"],"created_at":"2025-03-11T22:47:50.155Z","updated_at":"2025-04-14T23:37:33.342Z","avatar_url":"https://github.com/choria-io.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Choria Stream Replicator](https://choria-io.github.io/stream-replicator/logo.png)\n\n## Overview\n\nThis is a Stream data replicator for [Choria Streams](https://choria.io/docs/streams/) aka [NATS JetStream](https://docs.nats.io/jetstream/).\n\nConceptually it's like a [JetStream Source](https://docs.nats.io/running-a-nats-service/nats_admin/jetstream_admin/replication)\nthat runs outside the JetStream process and can therefore be used to copy data between 2 completely independent clusters.\n\nIn addition to the core Source-like behavior this replicator has some features of particular use to the Choria project in \nthat it can sample a Source Stream and, for any unique publisher, only replicate data on a set interval like once an hour\nor when there is a significant change in the data being sent. \n\nWhen sampling it publishes advisories about senders that have not been seen recently and other significant events \nallowing a central aggregator to have a more granular time window awareness than it could get by looking at its data alone.\n\n![Deployment](https://choria-io.github.io/stream-replicator/deployment.png)\n\nMultiple Streams can be replicated and order is preserved.\n\n * [Documentation](https://choria-io.github.io/stream-replicator/)\n * [Discussions](https://github.com/choria-io/stream-replicator/discussions)\n * [Slack](https://slack.puppet.com/) in channel `#choria`\n\n[![Go Report Card](https://goreportcard.com/badge/github.com/choria-io/stream-replicator)](https://goreportcard.com/report/github.com/choria-io/stream-replicator)\n[![CodeQL](https://github.com/choria-io/stream-replicator/workflows/CodeQL/badge.svg)](https://github.com/choria-io/stream-replicator/actions/workflows/codeql.yaml)\n[![Unit Tests](https://github.com/choria-io/stream-replicator/actions/workflows/test.yaml/badge.svg)](https://github.com/choria-io/stream-replicator/actions/workflows/test.yaml)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchoria-io%2Fstream-replicator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchoria-io%2Fstream-replicator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchoria-io%2Fstream-replicator/lists"}