Command Dispatcher, Processor, and Distributed Task Queue
C# Other
Permalink
Failed to load latest commit information.
.vscode Add support for vscode debugging [skip ci] Jan 14, 2017
Documentation split python projects from paramore.brighter Dec 30, 2016
Examples Remove some unneeded usings Jan 14, 2017
Help split python projects from paramore.brighter Dec 30, 2016
lib split python projects from paramore.brighter Dec 30, 2016
paramore.brighter.commandprocessor.commandstore.mssql split python projects from paramore.brighter Dec 30, 2016
paramore.brighter.commandprocessor.commandstore.sqlite split python projects from paramore.brighter Dec 30, 2016
paramore.brighter.commandprocessor.messagestore.eventstore split python projects from paramore.brighter Dec 30, 2016
paramore.brighter.commandprocessor.messagestore.mssql split python projects from paramore.brighter Dec 30, 2016
paramore.brighter.commandprocessor.messagestore.sqlite split python projects from paramore.brighter Dec 30, 2016
paramore.brighter.commandprocessor.messageviewer.console split python projects from paramore.brighter Dec 30, 2016
paramore.brighter.commandprocessor.messageviewer.windowsservice split python projects from paramore.brighter Dec 30, 2016
paramore.brighter.commandprocessor.messageviewer split python projects from paramore.brighter Dec 30, 2016
paramore.brighter.commandprocessor.messaginggateway.awssqs split python projects from paramore.brighter Dec 30, 2016
paramore.brighter.commandprocessor.messaginggateway.azureservicebus split python projects from paramore.brighter Dec 30, 2016
paramore.brighter.commandprocessor.messaginggateway.restms split python projects from paramore.brighter Dec 30, 2016
paramore.brighter.commandprocessor.messaginggateway.rmq split python projects from paramore.brighter Dec 30, 2016
paramore.brighter.commandprocessor.tests.nunit distinguish async and non-async policy keys Jan 15, 2017
paramore.brighter.commandprocessor.viewer.tests split python projects from paramore.brighter Dec 30, 2016
paramore.brighter.commandprocessor distinguish async and non-async policy keys Jan 15, 2017
paramore.brighter.monitoringconsole split python projects from paramore.brighter Dec 30, 2016
paramore.brighter.serviceactivator split python projects from paramore.brighter Dec 30, 2016
.gitattributes [skip ci] Trying to convince GitHub to set the language correctly Jan 9, 2017
.gitignore clear the backup files Oct 27, 2016
CONTRIBUTORS.md Update CONTRIBUTORS.md Dec 21, 2016
Contributing.md Update Contributing.md Apr 15, 2015
CopyBuildsToNugetLocal.cmd split python projects from paramore.brighter Dec 30, 2016
LICENCE.txt split python projects from paramore.brighter Dec 30, 2016
NuGet.config split python projects from paramore.brighter Dec 30, 2016
Paramore.CommandProcessor.sln split python projects from paramore.brighter Dec 30, 2016
Paramore.CommandProcessor.sln.metaproj split python projects from paramore.brighter Dec 30, 2016
Paramore.CommandProcessor.v2.ncrunchsolution split python projects from paramore.brighter Dec 30, 2016
README.md [skip ci] update the readme location of the appveyor nuget feed Jan 14, 2017
appveyor.yml Changed path of build Jan 14, 2017
build_all_projects.sh split python projects from paramore.brighter Dec 30, 2016
code_of_conduct.md Update Code of Conduct to Contributor Covenant 1.1.0 Jun 19, 2015
global.json split python projects from paramore.brighter Dec 30, 2016
release_notes.md Update release_notes.md Jul 28, 2016

README.md

Brighter

canon Brighter is a command dispatcher, processor, and task queue. It can be used to implement the Command Invoker pattern
Version NuGet Version
Download NuGet Downloads
Web http://brightercommand.github.io/Paramore.Brighter/
Source https://github.com/BrighterCommand/Paramore.Brighter
Chat Join the chat at https://gitter.im/iancooper/Paramore
Keywords task queue, job queue, asynchronous, async, rabbitmq, amqp, c#, command, command dispatcher, command processor, queue, distributed

Why a Command Dispatcher, Command Processor, and Task Queue?

  • When implementing a hexagonal architecture, one question is how to implement a port.
    • Brighter shows how to implement ports using a Command approach (with a Command Dispatcher)
    • This is the strategy described for services in Service Design Patterns as Command Invoker
  • A command processor let's you add orthogonal concerns seperately to the processing of commands such as logging, undo, validation, retry, and circuit breaker
    • Brighter provides a Command Processor, using a 'Russian Doll' model to allow a pipeline of handlers to operate on a command.
  • A task queue allows a one process to send work to be handled asynchronously to another process, using a message queue as the channel, for processing. A common use case is to help a web server scale by handing off a request to another process for back-end processing. This allows both a faster ack and throttling of the request arrival rate to that which can be handled by a back end processing component. For another project with this goal, see Celery
    • Brighter provides a Task Queue implementation for handling commands asynchronously via a work queue.

Getting started

  • More detailed documentation on the project can be found on the GitHub pages for the project here: Paramore

What are the different branches?

Branch Description
Master The tip of active development. Anything in master should ship at the next release. Code here should conform to CI basics: compile, pass tests etc.
gh-pages Documentation for the library
[Other] A branch for any work that is not ready to go into master (for example would break CI) or is experimental i.e. we don't know if we intend to ever ship, we are just trying out ideas.

How Do I get the NuGet packages for the latest build?

We release the build artefacts (NuGet packages) to Nuget on a regular basis and we update the release notes on those drops. We also tag the master code line. If you want to take the packages that represent master at any point you can download the packages for the latest good build from AppVeyor. The easiest approach to using those is to download them into a folder that you add to your NuGet sources.

Coverity Scan Build Status

Build status