Browse files

adding readme for rabbitmq transport

  • Loading branch information...
1 parent 094e7c3 commit 7d12acb3d954d08e3f4eef1afb56120e0843decf @haf committed with phatboyg Jan 30, 2012
View
3 src/MassTransit/Transports/IOutboundTransport.cs
@@ -12,6 +12,9 @@
// specific language governing permissions and limitations under the License.
namespace MassTransit.Transports
{
+ /// <summary>
+ /// Transport
+ /// </summary>
public interface IOutboundTransport :
ITransport
{
View
3 src/Transports/MassTransit.Transports.RabbitMq/MassTransit.Transports.RabbitMq.csproj
@@ -135,6 +135,9 @@
<Install>true</Install>
</BootstrapperPackage>
</ItemGroup>
+ <ItemGroup>
+ <None Include="README.md" />
+ </ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
View
4 src/Transports/MassTransit.Transports.RabbitMq/MessageName.cs
@@ -17,6 +17,10 @@ namespace MassTransit.Transports.RabbitMq
using System.Runtime.Serialization;
using System.Text;
+ /// <summary>
+ /// Class encapsulating naming strategies for exchanges corresponding
+ /// to message types.
+ /// </summary>
[Serializable]
public class MessageName :
ISerializable
View
30 src/Transports/MassTransit.Transports.RabbitMq/README.md
@@ -0,0 +1,30 @@
+# RabbitMQ Transport
+
+This readme details the transport implementation.
+
+## Transport aims
+
+Provide a first-citizen class transport to MassTransit that supports all the message patterns we'd want:
+
+ * Publish to any listener (that may or may not have subscribed already)
+ * Polymorphic Message Routing
+ * Send to endpoint
+ * etc...
+
+Further, the transport is able to handle both durable and non-durable (transient?) messages, depending
+on desired performance characteristics.
+
+## Work to be done
+
+ * Currently the transport has a prefetch of 1 message. It would be nice to be able to tweak this while still ensuring
+ that we don't lose messages if the server or the bus goes down. This would probably have to be facilitated
+ through *publisher confirms*
+ * The transport uses *basic_get* which is a polling implementation. Potentially it could be faster and nicer to use
+ *basic_consume*. Have a look at `InboundRabbitMqTransport` for more details on this.
+ * RabbitMQ supports AX-transactions, something that LTC and DTC supposedly is compliant with also - but both
+ `TransactionalBehaviour` implementations are empty. Specifically, adding support for two-phase-commit over the
+ network.
+ * RabbitMQ supports AMQP-transactions, i.e. message batching on both consume and publish/send. Could this be exposed
+ as receive context information?
+ * It's currently hairy to get SSL/TLS started with RabbitMQ on Windows machines - can we provide guidance or
+ something to run that sets up some pieces of the certificate authority machinery required for actual TLS deployments?
View
1 src/Transports/MassTransit.Transports.RabbitMq/RabbitMqConfigurationExtensions.cs
@@ -40,6 +40,7 @@ public static void UseRabbitMqRouting(this ServiceBusConfigurator configurator)
{
var interceptorConfigurator = new OutboundMessageInterceptorConfigurator(bus.OutboundPipeline);
+ // make sure we publish correctly through this interceptor; works on the outgoing pipeline
interceptorConfigurator.Create(new PublishEndpointInterceptor(bus));
});

0 comments on commit 7d12acb

Please sign in to comment.