{"id":13508986,"url":"https://github.com/conduitframework/conduit","last_synced_at":"2025-04-05T13:08:14.894Z","repository":{"id":48289928,"uuid":"71727533","full_name":"conduitframework/conduit","owner":"conduitframework","description":"A message queue framework, with support for middleware and multiple adapters.","archived":false,"fork":false,"pushed_at":"2021-08-03T05:20:44.000Z","size":410,"stargazers_count":129,"open_issues_count":6,"forks_count":16,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-05-02T10:18:28.526Z","etag":null,"topics":["elixir","message-queue"],"latest_commit_sha":null,"homepage":"https://hexdocs.pm/conduit","language":"Elixir","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/conduitframework.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-10-23T20:21:07.000Z","updated_at":"2024-01-15T22:40:54.000Z","dependencies_parsed_at":"2022-08-16T22:30:27.932Z","dependency_job_id":null,"html_url":"https://github.com/conduitframework/conduit","commit_stats":null,"previous_names":[],"tags_count":36,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/conduitframework%2Fconduit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/conduitframework%2Fconduit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/conduitframework%2Fconduit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/conduitframework%2Fconduit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/conduitframework","download_url":"https://codeload.github.com/conduitframework/conduit/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247339158,"owners_count":20923014,"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":["elixir","message-queue"],"created_at":"2024-08-01T02:01:01.401Z","updated_at":"2025-04-05T13:08:14.871Z","avatar_url":"https://github.com/conduitframework.png","language":"Elixir","funding_links":[],"categories":["Queue","Elixir"],"sub_categories":[],"readme":"# Conduit\n\n[![CircleCI](https://img.shields.io/circleci/project/github/conduitframework/conduit.svg?style=flat-square)](https://circleci.com/gh/conduitframework/conduit)\n[![Coveralls](https://img.shields.io/coveralls/conduitframework/conduit.svg?style=flat-square)](https://coveralls.io/github/conduitframework/conduit)\n[![Hex.pm](https://img.shields.io/hexpm/v/conduit.svg?style=flat-square)](https://hex.pm/packages/conduit)\n[![Hex.pm](https://img.shields.io/hexpm/l/conduit.svg?style=flat-square)](https://github.com/conduitframework/conduit/blob/master/LICENSE.md)\n[![Hex.pm](https://img.shields.io/hexpm/dt/conduit.svg?style=flat-square)](https://hex.pm/packages/conduit)\n\nA message queue framework, with support for middleware and multiple adapters.\n\nCheck out [this slide deck](http://slides.com/blatyo/deck-12#/) for more info.\n\n## Installation\n\nThe package can be installed as:\n\n  1. Add `conduit` to your list of dependencies in `mix.exs`:\n\n```elixir\ndef deps do\n  [{:conduit, \"~\u003e 0.12\"}]\nend\n```\n\n  2. If you are explicitly stating which applications to start, ensure `conduit`\n     is started before your application:\n\n```elixir\ndef application do\n  [applications: [:conduit]]\nend\n```\n\n## Getting Started\n\nOnce conduit is added to your project, you can generate a broker. For example:\n\n``` bash\nmix conduit.gen.broker --adapter amqp\nmix conduit.gen.broker --adapter sqs\n```\n\nThe Broker is responsible for describing how to setup your\nmessage queue routing, defining subscribers, publishers, and\npipelines for subscribers and publishers.\n\nSee `mix help conduit.gen.broker` for all the options that are available. For\nexample, specifying the adapter to use.\n\n## Officially Supported Adapters\n\n  * AMQP 0-9-1 - [ConduitAMQP](https://hexdocs.pm/conduit_amqp/readme.html#configuring-the-adapter)\n  * SQS - [ConduitSQS](https://hexdocs.pm/conduit_sqs/readme.html#configuring-the-adapter)\n\nIn the future more adapters will be supported.\n\n## Configuring the Broker Topology\n\nMQ's have queues which need to be setup and may involve other\nconcepts as well, including exchanges and bindings. Conduit\nattemps to stay out of the way when you need to define these\nthings because each MQ has a different opinion on what you need.\n\nBecause of that, you'll need to looks at the specific adapter\nfor what options are available.\n\n  * AMQP 0-9-1 - [Exchanges](https://hexdocs.pm/conduit_amqp/readme.html#configuring-exchanges) \u0026 [Queues](https://hexdocs.pm/conduit_amqp/readme.html#configuring-queues)\n  * SQS - [Queues](https://hexdocs.pm/conduit_sqs/readme.html#configuring-queues)\n\n## Configuring a Subscriber\n\nA subscriber is responsible for processing messages from a message queue.\nTypically, you'll have one subscriber per queue. You can generate a subscriber\nby doing:\n\n``` bash\nmix conduit.gen.subscriber user_created\n```\n\nSee `mix help conduit.gen.subscriber` for all the options that are available.\n\nYou can find more information about configuring your subscriber in the adapter\nspecific docs here:\n\n  * AMQP 0-9-1 - [Subscribers](https://hexdocs.pm/conduit_amqp/readme.html#configuring-a-subscriber)\n  * SQS - [Subscribers](https://hexdocs.pm/conduit_sqs/readme.html#configuring-a-subscriber)\n\n## Configuring a Publisher\n\nA publisher is responsible for sending messages. You can find more information\nabount configuring publishers in the adapter specific docs here:\n\n  * AMQP 0-9-1 - [Publishers](https://hexdocs.pm/conduit_amqp/readme.html#configuring-a-publisher)\n  * SQS - [Publishers](https://hexdocs.pm/conduit_sqs/readme.html#configuring-a-publisher)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fconduitframework%2Fconduit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fconduitframework%2Fconduit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fconduitframework%2Fconduit/lists"}