Skip to content

Open Source Messaging Framework. Queues, Channels, Events, Transactions, Distributed Cache

License

Notifications You must be signed in to change notification settings

horse-framework/horse-messaging

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Horse Messaging

NuGet NuGet NuGet NuGet

What's Horse Messaging

Horse Messaging is a communcation framework. It provides many features. All features can be used over only once client and one connection full asynchronously.

  • Push State Messaging Queues (supports persistent queues)
  • Pull State Messaging Queues (supports persistent queues)
  • Message Broadcasting over Channels
  • Distributed Cache Management
  • Direct Messaging Between Clients
  • Proxy for Request and Response Messaging
  • Remote Transactions
  • Event Management
  • Message Routing

Why should I use it ?

  • First of all, Horse Messaging is a framework, not an application. That gives you unlimited customization opportunity. Horse Messaging Server provides you many many implementation options to customize everything in it. On the other hand, if you want to use Horse Messaging Server with default implementations, you can create very basic application with a few lines of code.

  • It's a complete communication framework. It's a bridge between your applications. It's not just messaging queue or cache server. Horse gives you unlimited communication possibilities. You can use all kind of messaging architectures with same code base.

  • It's extremely extensible and customizable. Everything has an implementation and all operations are interceptable. You can even use your custom SQL server to make your queues durable.

  • It's fast, uses low memory and cpu. Queues can handle over 200k messages per second, Channels can handle over 350k messages per second. There is no delay in Horse, latency depends on your network connection.

Quick Start

Install and run basic server application

docker run -p 2626:2626 -p 2627:2627 horseframework/messaging-server

Create new .NET Core project and add Horse.Messaging.Client nuget package into your project.

HorseClient client = new HorseClient();
await client.ConnectAsync("horse://localhost:2626");

Navigate to Jockey panel http://localhost:2627 with empty username and password. You can see your connected client in clients page.

jetbrains