Shuttle / Shuttle.esb
Licence: other
A highly extensible service bus implementation.
Stars: ✭ 71
Labels
Projects that are alternatives of or similar to Shuttle.esb
Rabbitevents
Nuwber's events provide a simple observer implementation, allowing you to listen for various events that occur in your current and another application. For example, if you need to react to some event published from another API.
Stars: ✭ 84 (+18.31%)
Mutual labels: rabbitmq, queue
Tesseract
A set of libraries for rapidly developing Pipeline driven micro/macroservices.
Stars: ✭ 20 (-71.83%)
Mutual labels: queue, rabbitmq
Garagemq
AMQP message broker implemented with golang
Stars: ✭ 153 (+115.49%)
Mutual labels: rabbitmq, queue
Laravel Queue Rabbitmq
RabbitMQ driver for Laravel Queue. Supports Laravel Horizon.
Stars: ✭ 1,175 (+1554.93%)
Mutual labels: rabbitmq, queue
python-asynchronous-tasks
😎Asynchronous tasks in Python with Celery + RabbitMQ + Redis
Stars: ✭ 37 (-47.89%)
Mutual labels: queue, rabbitmq
Swarrot
A lib to consume message from any Broker
Stars: ✭ 350 (+392.96%)
Mutual labels: rabbitmq, queue
Machinery
Machinery is an asynchronous task queue/job queue based on distributed message passing.
Stars: ✭ 5,821 (+8098.59%)
Mutual labels: rabbitmq, queue
Servicebus
Simple service bus for sending events between processes using amqp.
Stars: ✭ 415 (+484.51%)
Mutual labels: service-bus, rabbitmq
Yii2 Queue
Yii2 Queue Extension. Supports DB, Redis, RabbitMQ, Beanstalk and Gearman
Stars: ✭ 977 (+1276.06%)
Mutual labels: rabbitmq, queue
Easybus
Easy integration with multiple messaging frameworks including RabbitMQ, Oracle AQ, ActiveMQ
Stars: ✭ 8 (-88.73%)
Mutual labels: service-bus, rabbitmq
Python Devops
gathers Python stack for DevOps, these are usually my basic templates use for my implementations, so, feel free to use it and evolve it! Everything is Docker!
Stars: ✭ 61 (-14.08%)
Mutual labels: rabbitmq
Rabbitmq Server
Open source RabbitMQ: core server and tier 1 (built-in) plugins
Stars: ✭ 9,064 (+12666.2%)
Mutual labels: rabbitmq
Docker Laravel Queue Worker
A docker image for working with queues being monitored by supervisor as recommended by laravel.
Stars: ✭ 60 (-15.49%)
Mutual labels: queue
Kubemq
KubeMQ is Enterprise-grade message broker native for Docker and Kubernetes
Stars: ✭ 58 (-18.31%)
Mutual labels: queue
Shuttle.Esb
A highly flexible and free .NET open-source enterprise service bus.
Documentation
There is extensive documentation on our site and you can make use of the samples to get you going.
Overview
Start a new Console Application project and select a Shuttle.Esb queue implementation from the [supported queues]({{ site.baseurl }}/packages/#queues):
Install-Package Shuttle.Esb.Msmq
Now we'll need select one of the supported containers:
Install-Package Shuttle.Core.Autofac
We'll also need to host our endpoint using the service host:
Install-Package Shuttle.Core.ServiceHost
Next we'll implement our endpoint in order to start listening on our queue:
internal class Program
{
private static void Main()
{
ServiceHost.Run<Host>();
}
}
public class Host : IServiceHost
{
private IServiceBus _bus;
public void Start()
{
var containerBuilder = new ContainerBuilder();
var registry = new AutofacComponentRegistry(containerBuilder);
ServiceBus.Register(registry);
var resolver = new AutofacComponentResolver(containerBuilder.Build());
_bus = ServiceBus.Create(resolver).Start();
}
public void Stop()
{
_bus.Dispose();
}
}
A bit of configuration is going to be needed to help things along:
<configuration>
<configSections>
<section name="serviceBus" type="Shuttle.Esb.ServiceBusSection, Shuttle.Esb"/>
</configSections>
<serviceBus>
<inbox
workQueueUri="msmq://./shuttle-server-work"
deferredQueueUri="msmq://./shuttle-server-deferred"
errorQueueUri="msmq://./shuttle-error" />
</serviceBus>
</configuration>
Send a command message for processing
using (var bus = ServiceBus.Create(resolver).Start())
{
bus.Send(new RegisterMemberCommand
{
UserName = "Mr Resistor",
EMailAddress = "[email protected]"
});
}
Publish an event message when something interesting happens
using (var bus = ServiceBus.Create(resolver).Start())
{
bus.Publish(new MemberRegisteredEvent
{
UserName = "Mr Resistor"
});
}
Subscribe to those interesting events
resolver.Resolve<ISubscriptionManager>().Subscribe<MemberRegisteredEvent>();
Handle any messages
public class RegisterMemberHandler : IMessageHandler<RegisterMemberCommand>
{
public void ProcessMessage(IHandlerContext<RegisterMemberCommand> context)
{
Console.WriteLine();
Console.WriteLine("[MEMBER REGISTERED] : user name = '{0}'", context.Message.UserName);
Console.WriteLine();
context.Publish(new MemberRegisteredEvent
{
UserName = context.Message.UserName
});
}
}
public class MemberRegisteredHandler : IMessageHandler<MemberRegisteredEvent>
{
public void ProcessMessage(IHandlerContext<MemberRegisteredEvent> context)
{
Console.WriteLine();
Console.WriteLine("[EVENT RECEIVED] : user name = '{0}'", context.Message.UserName);
Console.WriteLine();
}
}
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].