================================= Brighter
![canon] (https://openclipart.org/people/amilo/canon.svg) | Brighter is a command dispatcher, processor, and task queue. It can be used to implement the [Command Invoker] (http://servicedesignpatterns.com/WebServiceImplementationStyles/CommandInvoker) pattern |
Version | [](https://www.nuget.org/packages/ paramore.brighter.commandprocessor/) |
Download | ![NuGet Downloads](http://img.shields.io/nuget/dt/ paramore.brighter.commandprocessor.svg) |
Web | http://iancooper.github.io/Paramore/ |
Source | https://github.com/iancooper/Paramore |
Keywords | task queue, job queue, asynchronous, async, rabbitmq, amqp, c#, command, command dispatcher, command processor, queue, distributed |
- 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] (http://servicedesignpatterns.com/WebServiceImplementationStyles/CommandInvoker)
- 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.
- More detailed documentation on the project can be found on the GitHub pages for the project here: Paramore
Branch | Description |
---|---|
Release | The source for the current NuGet package (or the release candidate that is being verified) |
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. |
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 |
![replay] (https://openclipart.org/people/pydubreucq/replay-sign.svg) | Rewind is an example of a microservices architectural style implemented using Brighter |
Version | 1.0.0.pre- |
- An example .NET project using Brighter
- Provides an example of the following architectural styles:
- Microservices
- Hierachical Systems
- N-Tier inc. Hexagonal Architecture (Ports and Adapters)
- CQRS
- Data Centric Systems
- OO Domain Model (see below.. )
- Data Flow Systems
- Piplines
- Interacting Processess
- Broker
- Client-Server (REST, SPA)