gitextract_cdt0elb2/ ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.md │ │ ├── config.yml │ │ └── feature_request.md │ ├── pull_request_template.md │ └── workflows/ │ ├── master.yml │ ├── pr-examples.yml │ ├── pr.yml │ └── tests.yml ├── .gitignore ├── CONTRIBUTING.md ├── LICENSE ├── Makefile ├── README.md ├── RELEASE-PROCEDURE.md ├── UPGRADE-0.3.md ├── UPGRADE-0.4.md ├── UPGRADE-1.0.md ├── _examples/ │ ├── basic/ │ │ ├── 1-your-first-app/ │ │ │ ├── .validate_example.yml │ │ │ ├── README.md │ │ │ ├── docker-compose.yml │ │ │ ├── go.mod │ │ │ ├── go.sum │ │ │ └── main.go │ │ ├── 2-realtime-feed/ │ │ │ ├── .validate_example_subscribing.yml │ │ │ ├── README.md │ │ │ ├── consumer/ │ │ │ │ ├── go.mod │ │ │ │ ├── go.sum │ │ │ │ └── main.go │ │ │ ├── docker-compose.yml │ │ │ └── producer/ │ │ │ ├── go.mod │ │ │ ├── go.sum │ │ │ └── main.go │ │ ├── 3-router/ │ │ │ ├── .validate_example.yml │ │ │ ├── go.mod │ │ │ ├── go.sum │ │ │ └── main.go │ │ ├── 4-metrics/ │ │ │ ├── .validate_example.yml │ │ │ ├── README.md │ │ │ ├── docker-compose.yml │ │ │ ├── go.mod │ │ │ ├── go.sum │ │ │ ├── main.go │ │ │ └── prometheus.yml │ │ ├── 5-cqrs-protobuf/ │ │ │ ├── .validate_example.yml │ │ │ ├── Makefile │ │ │ ├── README.md │ │ │ ├── docker-compose.yml │ │ │ ├── go.mod │ │ │ ├── go.sum │ │ │ ├── main.go │ │ │ ├── messages.pb.go │ │ │ └── proto/ │ │ │ └── messages.proto │ │ └── 6-cqrs-ordered-events/ │ │ ├── .validate_example.yml │ │ ├── Makefile │ │ ├── README.md │ │ ├── activity.go │ │ ├── docker-compose.yml │ │ ├── go.mod │ │ ├── go.sum │ │ ├── main.go │ │ ├── message.go │ │ ├── messages.pb.go │ │ ├── proto/ │ │ │ └── messages.proto │ │ └── subscribers.go │ ├── pubsubs/ │ │ ├── amqp/ │ │ │ ├── .validate_example.yml │ │ │ ├── docker-compose.yml │ │ │ ├── go.mod │ │ │ ├── go.sum │ │ │ └── main.go │ │ ├── aws-sns/ │ │ │ ├── .validate_example.yml │ │ │ ├── docker-compose.yml │ │ │ ├── go.mod │ │ │ ├── go.sum │ │ │ └── main.go │ │ ├── aws-sqs/ │ │ │ ├── .validate_example.yml │ │ │ ├── docker-compose.yml │ │ │ ├── go.mod │ │ │ ├── go.sum │ │ │ └── main.go │ │ ├── go-channel/ │ │ │ ├── .validate_example.yml │ │ │ ├── go.mod │ │ │ ├── go.sum │ │ │ └── main.go │ │ ├── googlecloud/ │ │ │ ├── .validate_example.yml │ │ │ ├── docker-compose.yml │ │ │ ├── go.mod │ │ │ ├── go.sum │ │ │ └── main.go │ │ ├── kafka/ │ │ │ ├── .validate_example.yml │ │ │ ├── docker-compose.yml │ │ │ ├── go.mod │ │ │ ├── go.sum │ │ │ └── main.go │ │ ├── nats-core/ │ │ │ ├── .validate_example.yml │ │ │ ├── docker-compose.yml │ │ │ ├── go.mod │ │ │ ├── go.sum │ │ │ └── main.go │ │ ├── nats-jetstream/ │ │ │ ├── .validate_example.yml │ │ │ ├── docker-compose.yml │ │ │ ├── go.mod │ │ │ ├── go.sum │ │ │ └── main.go │ │ ├── nats-streaming/ │ │ │ ├── .validate_example.yml │ │ │ ├── docker-compose.yml │ │ │ ├── go.mod │ │ │ ├── go.sum │ │ │ └── main.go │ │ ├── redisstream/ │ │ │ ├── .validate_example.yml │ │ │ ├── docker-compose.yml │ │ │ ├── go.mod │ │ │ ├── go.sum │ │ │ └── main.go │ │ ├── sql/ │ │ │ ├── .validate_example.yml │ │ │ ├── docker-compose.yml │ │ │ ├── go.mod │ │ │ ├── go.sum │ │ │ └── main.go │ │ ├── sqlite/ │ │ │ ├── .gitignore │ │ │ ├── .validate_example.yml │ │ │ ├── go.mod │ │ │ ├── go.sum │ │ │ ├── main.go │ │ │ └── transaction.go │ │ └── sqlite-zombiezen/ │ │ ├── .gitignore │ │ ├── .validate_example.yml │ │ ├── go.mod │ │ ├── go.sum │ │ ├── main.go │ │ └── transaction.go │ └── real-world-examples/ │ ├── consumer-groups/ │ │ ├── README.md │ │ ├── api/ │ │ │ ├── http.go │ │ │ ├── main.go │ │ │ ├── public/ │ │ │ │ └── index.html │ │ │ └── storage.go │ │ ├── common/ │ │ │ ├── events.go │ │ │ └── messaging.go │ │ ├── crm-service/ │ │ │ └── main.go │ │ ├── docker-compose.yml │ │ ├── go.mod │ │ ├── go.sum │ │ └── newsletter-service/ │ │ └── main.go │ ├── delayed-messages/ │ │ ├── docker-compose.yml │ │ ├── go.mod │ │ ├── go.sum │ │ └── main.go │ ├── delayed-requeue/ │ │ ├── docker-compose.yml │ │ ├── go.mod │ │ ├── go.sum │ │ └── main.go │ ├── exactly-once-delivery-counter/ │ │ ├── README.md │ │ ├── docker-compose.yml │ │ ├── run.go │ │ ├── schema.sql │ │ ├── server/ │ │ │ ├── go.mod │ │ │ ├── go.sum │ │ │ └── main.go │ │ └── worker/ │ │ ├── go.mod │ │ ├── go.sum │ │ └── main.go │ ├── persistent-event-log/ │ │ ├── .validate_example.yml │ │ ├── README.md │ │ ├── docker-compose.yml │ │ ├── go.mod │ │ ├── go.sum │ │ └── main.go │ ├── receiving-webhooks/ │ │ ├── .validate_example.yml │ │ ├── README.md │ │ ├── docker-compose.yml │ │ ├── go.mod │ │ ├── go.sum │ │ └── main.go │ ├── sending-webhooks/ │ │ ├── .validate_example.yml │ │ ├── README.md │ │ ├── docker-compose.yml │ │ ├── producer/ │ │ │ ├── go.mod │ │ │ ├── go.sum │ │ │ └── main.go │ │ ├── router/ │ │ │ ├── go.mod │ │ │ ├── go.sum │ │ │ └── main.go │ │ └── webhooks-server/ │ │ └── main.go │ ├── server-sent-events/ │ │ ├── README.md │ │ ├── docker-compose.yml │ │ ├── schema.sql │ │ └── server/ │ │ ├── event_handlers.go │ │ ├── feeds_storage.go │ │ ├── go.mod │ │ ├── go.sum │ │ ├── http.go │ │ ├── main.go │ │ ├── models.go │ │ ├── posts_storage.go │ │ └── public/ │ │ └── index.html │ ├── server-sent-events-htmx/ │ │ ├── Dockerfile │ │ ├── README.md │ │ ├── docker/ │ │ │ ├── Dockerfile │ │ │ └── reflex.conf │ │ ├── docker-compose.yml │ │ ├── events.go │ │ ├── go.mod │ │ ├── go.sum │ │ ├── http.go │ │ ├── main.go │ │ ├── models.go │ │ ├── repository.go │ │ └── views/ │ │ ├── base.templ │ │ ├── base_templ.go │ │ ├── pages.templ │ │ └── pages_templ.go │ ├── synchronizing-databases/ │ │ ├── .validate_example.yml │ │ ├── README.md │ │ ├── docker-compose.yml │ │ ├── go.mod │ │ ├── go.sum │ │ ├── main.go │ │ ├── mysql.go │ │ └── postgres.go │ ├── transactional-events/ │ │ ├── .validate_example.yml │ │ ├── README.md │ │ ├── docker-compose.yml │ │ ├── go.mod │ │ ├── go.sum │ │ └── main.go │ └── transactional-events-forwarder/ │ ├── .validate_example.yml │ ├── README.md │ ├── docker-compose.yml │ ├── go.mod │ ├── go.sum │ └── main.go ├── codecov.yml ├── components/ │ ├── cqrs/ │ │ ├── command_bus.go │ │ ├── command_bus_test.go │ │ ├── command_handler.go │ │ ├── command_handler_test.go │ │ ├── command_processor.go │ │ ├── command_processor_test.go │ │ ├── cqrs.go │ │ ├── cqrs_test.go │ │ ├── ctx.go │ │ ├── doc.go │ │ ├── event_bus.go │ │ ├── event_bus_test.go │ │ ├── event_handler.go │ │ ├── event_handler_test.go │ │ ├── event_processor.go │ │ ├── event_processor_group.go │ │ ├── event_processor_group_test.go │ │ ├── event_processor_test.go │ │ ├── marshaler.go │ │ ├── marshaler_json.go │ │ ├── marshaler_json_test.go │ │ ├── marshaler_protobuf.go │ │ ├── marshaler_protobuf_events_new_test.go │ │ ├── marshaler_protobuf_events_test.go │ │ ├── marshaler_protobuf_gogo.go │ │ ├── marshaler_protobuf_gogo_test.go │ │ ├── marshaler_protobuf_test.go │ │ ├── name.go │ │ ├── name_test.go │ │ ├── object.go │ │ └── testdata/ │ │ └── events.proto │ ├── delay/ │ │ ├── delay.go │ │ ├── publisher.go │ │ └── publisher_test.go │ ├── fanin/ │ │ ├── fanin.go │ │ └── fanin_test.go │ ├── forwarder/ │ │ ├── envelope.go │ │ ├── envelope_test.go │ │ ├── forwarder.go │ │ ├── forwarder_test.go │ │ └── publisher.go │ ├── metrics/ │ │ ├── builder.go │ │ ├── ctx.go │ │ ├── handler.go │ │ ├── http.go │ │ ├── http_test.go │ │ ├── labels.go │ │ ├── publisher.go │ │ └── subscriber.go │ ├── requestreply/ │ │ ├── backend_pubsub.go │ │ ├── backend_pubsub_marshaler.go │ │ ├── command_bus.go │ │ ├── handler.go │ │ ├── requestreply.go │ │ └── requestreply_test.go │ └── requeuer/ │ ├── requeuer.go │ └── requeuer_test.go ├── dev/ │ ├── consolidate-gomods/ │ │ └── main.go │ ├── coverage.sh │ ├── prometheus.yml │ ├── update-examples-deps/ │ │ ├── go.mod │ │ ├── go.sum │ │ └── main.go │ └── validate-examples/ │ ├── go.mod │ ├── go.sum │ └── main.go ├── doc.go ├── docs/ │ ├── .npmignore │ ├── .npmrc │ ├── .prettierignore │ ├── .prettierrc.yaml │ ├── DEVELOP.md │ ├── assets/ │ │ ├── images/ │ │ │ └── .gitkeep │ │ ├── js/ │ │ │ └── custom.js │ │ ├── jsconfig.json │ │ ├── scss/ │ │ │ └── common/ │ │ │ ├── _custom.scss │ │ │ └── _variables-custom.scss │ │ └── svgs/ │ │ └── .gitkeep │ ├── build.sh │ ├── config/ │ │ ├── _default/ │ │ │ ├── hugo.toml │ │ │ ├── languages.toml │ │ │ ├── markup.toml │ │ │ ├── menus/ │ │ │ │ └── menus.en.toml │ │ │ ├── module.toml │ │ │ └── params.toml │ │ ├── babel.config.js │ │ ├── next/ │ │ │ └── hugo.toml │ │ ├── postcss.config.js │ │ └── production/ │ │ └── hugo.toml │ ├── content/ │ │ ├── _index.md │ │ ├── advanced/ │ │ │ ├── delayed-messages.md │ │ │ ├── fanin.md │ │ │ ├── fanout.md │ │ │ ├── forwarder.md │ │ │ ├── metrics.md │ │ │ └── requeuing-after-error.md │ │ ├── development/ │ │ │ ├── benchmark.md │ │ │ ├── contributing.md │ │ │ ├── pub-sub-implementing.md │ │ │ └── releases.md │ │ ├── docs/ │ │ │ ├── _index.md │ │ │ ├── articles.md │ │ │ ├── awesome.md │ │ │ ├── cqrs.md │ │ │ ├── message/ │ │ │ │ ├── .validate_example.yml │ │ │ │ ├── go.mod │ │ │ │ ├── go.sum │ │ │ │ └── receiving-ack.go │ │ │ ├── message.md │ │ │ ├── messages-router.md │ │ │ ├── middlewares.md │ │ │ ├── pub-sub.md │ │ │ ├── snippets/ │ │ │ │ ├── amqp-consumer-groups/ │ │ │ │ │ ├── .validate_example.yml │ │ │ │ │ ├── docker-compose.yml │ │ │ │ │ ├── go.mod │ │ │ │ │ ├── go.sum │ │ │ │ │ └── main.go │ │ │ │ └── tail-log-file/ │ │ │ │ ├── go.mod │ │ │ │ ├── go.sum │ │ │ │ └── main.go │ │ │ └── troubleshooting.md │ │ ├── learn/ │ │ │ ├── _index.md │ │ │ ├── getting-started.md │ │ │ └── quickstart.md │ │ ├── pubsubs/ │ │ │ ├── _index.md │ │ │ ├── amqp.md │ │ │ ├── aws.md │ │ │ ├── bolt.md │ │ │ ├── firestore.md │ │ │ ├── gochannel.md │ │ │ ├── googlecloud.md │ │ │ ├── http.md │ │ │ ├── io.md │ │ │ ├── kafka.md │ │ │ ├── nats.md │ │ │ ├── redisstream.md │ │ │ ├── sql.md │ │ │ └── sqlite.md │ │ └── support.md │ ├── extract_middleware_godocs.py │ ├── layouts/ │ │ ├── _default/ │ │ │ ├── _markup/ │ │ │ │ └── render-link.html │ │ │ ├── learn.html │ │ │ └── quickstart.html │ │ ├── index.html │ │ ├── partials/ │ │ │ ├── footer/ │ │ │ │ ├── footer.html │ │ │ │ └── script-footer-custom.html │ │ │ ├── head/ │ │ │ │ ├── custom-head.html │ │ │ │ ├── resource-hints.html │ │ │ │ └── script-header.html │ │ │ ├── header/ │ │ │ │ └── header.html │ │ │ ├── main/ │ │ │ │ └── edit-page.html │ │ │ ├── private/ │ │ │ │ └── has-headings.html │ │ │ ├── seo/ │ │ │ │ ├── opengraph.html │ │ │ │ └── twitter.html │ │ │ └── sidebar/ │ │ │ └── section-menu.html │ │ └── shortcodes/ │ │ ├── load-snippet-partial.html │ │ ├── load-snippet.html │ │ ├── readfile.html │ │ ├── tab.html │ │ └── tabs.html │ ├── package.json │ ├── resources/ │ │ └── _gen/ │ │ └── assets/ │ │ └── scss/ │ │ ├── app.scss_901a6e181e810c5c7347a10d84f037ab.content │ │ ├── app.scss_901a6e181e810c5c7347a10d84f037ab.json │ │ ├── app.scss_cdf9d7c9eb97e4550ded64a8776dd9e8.content │ │ └── app.scss_cdf9d7c9eb97e4550ded64a8776dd9e8.json │ └── static/ │ └── .gitkeep ├── go.mod ├── go.sum ├── internal/ │ ├── channel.go │ ├── channel_test.go │ ├── name.go │ ├── name_test.go │ ├── norace.go │ ├── publisher/ │ │ ├── errors.go │ │ ├── retry.go │ │ └── retry_test.go │ ├── race.go │ └── subscriber/ │ └── multiplier.go ├── log.go ├── log_test.go ├── message/ │ ├── decorator.go │ ├── decorator_bench_test.go │ ├── decorator_test.go │ ├── message.go │ ├── message_test.go │ ├── messages.go │ ├── messages_test.go │ ├── metadata.go │ ├── pubsub.go │ ├── router/ │ │ ├── middleware/ │ │ │ ├── circuit_breaker.go │ │ │ ├── circuit_breaker_test.go │ │ │ ├── correlation.go │ │ │ ├── correlation_test.go │ │ │ ├── deduplicator.go │ │ │ ├── deduplicator_test.go │ │ │ ├── delay_on_error.go │ │ │ ├── delay_on_error_test.go │ │ │ ├── duplicator.go │ │ │ ├── duplicator_test.go │ │ │ ├── ignore_errors.go │ │ │ ├── ignore_errors_test.go │ │ │ ├── instant_ack.go │ │ │ ├── instant_ack_test.go │ │ │ ├── message_test.go │ │ │ ├── poison.go │ │ │ ├── poison_test.go │ │ │ ├── randomfail.go │ │ │ ├── randomfail_test.go │ │ │ ├── recoverer.go │ │ │ ├── recoverer_test.go │ │ │ ├── retry.go │ │ │ ├── retry_test.go │ │ │ ├── throttle.go │ │ │ ├── throttle_test.go │ │ │ ├── timeout.go │ │ │ └── timeout_test.go │ │ └── plugin/ │ │ └── signals.go │ ├── router.go │ ├── router_context.go │ ├── router_context_test.go │ ├── router_test.go │ └── subscriber/ │ ├── read.go │ └── read_test.go ├── netlify.toml ├── pubsub/ │ ├── doc.go │ ├── gochannel/ │ │ ├── doc.go │ │ ├── fanout.go │ │ ├── fanout_test.go │ │ ├── pubsub.go │ │ ├── pubsub_bench_test.go │ │ ├── pubsub_internal_test.go │ │ ├── pubsub_stress_test.go │ │ └── pubsub_test.go │ ├── sync/ │ │ ├── waitgroup.go │ │ └── waitgroup_test.go │ └── tests/ │ ├── bench_pubsub.go │ ├── test_asserts.go │ ├── test_pubsub.go │ └── test_pubsub_stress.go ├── slog.go ├── slog_test.go ├── tools/ │ ├── mill/ │ │ ├── .default-config.yml │ │ ├── Makefile │ │ ├── README.md │ │ ├── cmd/ │ │ │ ├── amqp.go │ │ │ ├── consume.go │ │ │ ├── googlecloud.go │ │ │ ├── internal/ │ │ │ │ └── indent.go │ │ │ ├── kafka.go │ │ │ ├── produce.go │ │ │ └── root.go │ │ ├── go.mod │ │ ├── go.sum │ │ └── main.go │ └── pq/ │ ├── README.md │ ├── backend/ │ │ └── postgres.go │ ├── cli/ │ │ ├── backend.go │ │ ├── message.go │ │ └── model.go │ ├── go.mod │ ├── go.sum │ └── main.go ├── uuid.go └── uuid_test.go