1
0
mirror of synced 2024-11-21 17:03:50 +00:00

Readme updated for 2.0 merge

This commit is contained in:
Mark van Renswoude 2019-10-21 14:03:48 +02:00
parent 450ab0bce4
commit c453b96a86

View File

@ -1,9 +1,45 @@
## Introduction
Tapeti is a wrapper for the RabbitMQ .NET Client designed for long-running microservices. Its main goal is to minimize the amount of messaging code required, and instead focus on the higher-level flow.
## Key features
* Consumers are declared using MVC-style controllers and are registered automatically based on annotations
* Publishing requires only the message class, no transport details such as exchange and routing key
* Flow extension (stateful request - response handling with support for parallel requests)
* No inheritance required
* Graceful recovery in case of connection issues, and in contrast to most libraries not designed for services, during startup as well
* Extensible using middleware
## Show me the code!
Below is a bare minimum message controller from the first example project to get a feel for how messages are handled using Tapeti.
```csharp
/// <summary>
/// Example of a simple broadcast message used in the standard publish - subscribe pattern
/// </summary>
public class PublishSubscribeMessage
{
[Required(ErrorMessage = "Don't be impolite, supply a {0}")]
public string Greeting { get; set; }
}
[MessageController]
[DynamicQueue("tapeti.example.01")]
public class ExampleMessageController
{
public ExampleMessageController() { }
public void HandlePublishSubscribeMessage(PublishSubscribeMessage message)
{
Console.WriteLine("Received message: " + message.Greeting);
}
}
```
More details and examples can be found in the documentation as well as the example projects included with the source.
## Documentation ## Documentation
The documentation for Tapeti is available on Read the Docs: The documentation for Tapeti is available on Read the Docs:
[2.0 beta release branch](http://tapeti.readthedocs.io/en/release-2.0/introduction.html)<br />
[![Documentation Status](https://readthedocs.org/projects/tapeti/badge/?version=release-2.0)](http://tapeti.readthedocs.io/en/release-2.0/introduction.html?badge=release-2.0)
[Master branch (stable release)](http://tapeti.readthedocs.io/en/stable/introduction.html)<br /> [Master branch (stable release)](http://tapeti.readthedocs.io/en/stable/introduction.html)<br />
[![Documentation Status](https://readthedocs.org/projects/tapeti/badge/?version=stable)](http://tapeti.readthedocs.io/en/stable/introduction.html?badge=stable) [![Documentation Status](https://readthedocs.org/projects/tapeti/badge/?version=stable)](http://tapeti.readthedocs.io/en/stable/introduction.html?badge=stable)
@ -15,11 +51,8 @@ The documentation for Tapeti is available on Read the Docs:
## Builds ## Builds
Builds are automatically run using AppVeyor, with the resulting packages being pushed to NuGet. Builds are automatically run using AppVeyor, with the resulting packages being pushed to NuGet.
2.0 beta release build Master build (stable release)
[![Build status](https://ci.appveyor.com/api/projects/status/cyuo0vm7admy0d9x/branch/release/2.0?svg=true)](https://ci.appveyor.com/project/MvRens/tapeti/branch/release/2.0)
Master build
[![Build status](https://ci.appveyor.com/api/projects/status/cyuo0vm7admy0d9x/branch/master?svg=true)](https://ci.appveyor.com/project/MvRens/tapeti/branch/master) [![Build status](https://ci.appveyor.com/api/projects/status/cyuo0vm7admy0d9x/branch/master?svg=true)](https://ci.appveyor.com/project/MvRens/tapeti/branch/master)
Latest build Latest build
[![Build status](https://ci.appveyor.com/api/projects/status/cyuo0vm7admy0d9x?svg=true)](https://ci.appveyor.com/project/MvRens/tapeti) [![Build status](https://ci.appveyor.com/api/projects/status/cyuo0vm7admy0d9x?svg=true)](https://ci.appveyor.com/project/MvRens/tapeti)