Code Monkey home page Code Monkey logo

conduit's Introduction

Conduit

CircleCI Coveralls Hex.pm Hex.pm Hex.pm

A message queue framework, with support for middleware and multiple adapters.

Check out this slide deck for more info.

Installation

The package can be installed as:

  1. Add conduit to your list of dependencies in mix.exs:
def deps do
  [{:conduit, "~> 0.10"}]
end
  1. If you are explicitly stating which applications to start, ensure conduit is started before your application:
def application do
  [applications: [:conduit]]
end

Getting Started

Once conduit is added to your project, you can generate a broker. For example:

mix conduit.gen.broker --adapter amqp
mix conduit.gen.broker --adapter sqs

The Broker is responsible for describing how to setup your message queue routing, defining subscribers, publishers, and pipelines for subscribers and publishers.

See mix help conduit.gen.broker for all the options that are available. For example, specifying the adapter to use.

Officially Supported Adapters

In the future more adapters will be supported.

Configuring the Broker Topology

MQ's have queues which need to be setup and may involve other concepts as well, including exchanges and bindings. Conduit attemps to stay out of the way when you need to define these things because each MQ has a different opinion on what you need.

Because of that, you'll need to looks at the specific adapter for what options are available.

Configuring a Subscriber

A subscriber is responsible for processing messages from a message queue. Typically, you'll have one subscriber per queue. You can generate a subscriber by doing:

mix conduit.gen.subscriber user_created

See mix help conduit.gen.subscriber for all the options that are available.

You can find more information about configuring your subscriber in the adapter specific docs here:

Configuring a Publisher

A publisher is responsible for sending messages. You can find more information abount configuring publishers in the adapter specific docs here:

conduit's People

Contributors

ashardweedar avatar blatyo avatar doughsay avatar log4b avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.