Alternatives to NServiceBus logo

Alternatives to NServiceBus

Azure Service Bus, RabbitMQ, Kafka, Akka, and MassTransit are the most popular alternatives and competitors to NServiceBus.
56
2

What is NServiceBus and what are its top alternatives?

NServiceBus is an Enterprise Service Bus (ESB) for .NET that provides a messaging framework to build distributed systems. Its key features include message routing, pub-sub messaging, message serialization, and support for various messaging transports. However, NServiceBus can be complex to set up and expensive for small projects.

  1. MassTransit: MassTransit is an open-source distributed application framework for .NET that provides a message-based architecture. Key features include support for various messaging transports, fault tolerance, and flexible configuration. Pros include its open-source nature and extensive community support, while cons may include a steeper learning curve compared to NServiceBus.

  2. Rebus: Rebus is a lean service bus implementation for .NET that simplifies communication between applications. Key features include a lightweight design, support for various messaging transports, and extensibility through plugins. Pros include its simplicity and flexibility, while cons may include less comprehensive features compared to NServiceBus.

  3. Brighter: Brighter is a command dispatcher and processor for .NET applications that provides a simple way to implement command-based architectures. Key features include in-process message handling, support for command patterns, and extensibility through decorators. Pros include its lightweight design and ease of use, while cons may include limited support for more complex messaging scenarios compared to NServiceBus.

  4. RawRabbit: RawRabbit is a modern RabbitMQ client library for .NET that simplifies working with RabbitMQ messaging. Key features include support for RabbitMQ messaging, easy-to-use API, and asynchronous message processing. Pros include its focus on RabbitMQ integration and simplicity, while cons may include a narrower focus compared to NServiceBus.

  5. EasyNetQ: EasyNetQ is a simple API for RabbitMQ messaging for .NET applications. Key features include easy-to-use API, support for RabbitMQ messaging, and lightweight design. Pros include its simplicity and ease of use, while cons may include limited features compared to NServiceBus.

Top Alternatives to NServiceBus

  • Azure Service Bus
    Azure Service Bus

    It is a cloud messaging system for connecting apps and devices across public and private clouds. You can depend on it when you need highly-reliable cloud messaging service between applications and services, even when one or more is offline. ...

  • RabbitMQ
    RabbitMQ

    RabbitMQ gives your applications a common platform to send and receive messages, and your messages a safe place to live until received. ...

  • Kafka
    Kafka

    Kafka is a distributed, partitioned, replicated commit log service. It provides the functionality of a messaging system, but with a unique design. ...

  • Akka
    Akka

    Akka is a toolkit and runtime for building highly concurrent, distributed, and resilient message-driven applications on the JVM. ...

  • MassTransit
    MassTransit

    It is free software/open-source .NET-based Enterprise Service Bus software that helps Microsoft developers route messages over MSMQ, RabbitMQ, TIBCO and ActiveMQ service busses, with native support for MSMQ and RabbitMQ. ...

  • MSMQ
    MSMQ

    This technology enables applications running at different times to communicate across heterogeneous networks and systems that may be temporarily offline. Applications send messages to queues and read messages from queues. ...

  • Hangfire
    Hangfire

    It is an open-source framework that helps you to create, process and manage your background jobs, i.e. operations you don't want to put in your request processing pipeline. It supports all kind of background tasks – short-running and long-running, CPU intensive and I/O intensive, one shot and recurrent. ...

  • Apache Camel
    Apache Camel

    An open source Java framework that focuses on making integration easier and more accessible to developers. ...

NServiceBus alternatives & related posts

Azure Service Bus logo

Azure Service Bus

276
531
7
Reliable cloud messaging as a service (MaaS)
276
531
+ 1
7
PROS OF AZURE SERVICE BUS
  • 4
    Easy Integration with .Net
  • 2
    Cloud Native
  • 1
    Use while high messaging need
CONS OF AZURE SERVICE BUS
  • 1
    Limited features in Basic tier
  • 1
    Skills can only be used in Azure - vendor lock-in
  • 1
    Lacking in JMS support
  • 1
    Observability of messages in the queue is lacking

related Azure Service Bus posts

Shared insights
on
Azure Service BusAzure Service BusIBM MQIBM MQ

Want to get the differences in features and enhancement, pros and cons, and also how to Migrate from IBM MQ to Azure Service Bus.

See more
RabbitMQ logo

RabbitMQ

21.3K
18.7K
557
Open source multiprotocol messaging broker
21.3K
18.7K
+ 1
557
PROS OF RABBITMQ
  • 235
    It's fast and it works with good metrics/monitoring
  • 80
    Ease of configuration
  • 60
    I like the admin interface
  • 52
    Easy to set-up and start with
  • 22
    Durable
  • 19
    Standard protocols
  • 19
    Intuitive work through python
  • 11
    Written primarily in Erlang
  • 9
    Simply superb
  • 7
    Completeness of messaging patterns
  • 4
    Reliable
  • 4
    Scales to 1 million messages per second
  • 3
    Better than most traditional queue based message broker
  • 3
    Distributed
  • 3
    Supports MQTT
  • 3
    Supports AMQP
  • 2
    Clear documentation with different scripting language
  • 2
    Better routing system
  • 2
    Inubit Integration
  • 2
    Great ui
  • 2
    High performance
  • 2
    Reliability
  • 2
    Open-source
  • 2
    Runs on Open Telecom Platform
  • 2
    Clusterable
  • 2
    Delayed messages
  • 1
    Supports Streams
  • 1
    Supports STOMP
  • 1
    Supports JMS
CONS OF RABBITMQ
  • 9
    Too complicated cluster/HA config and management
  • 6
    Needs Erlang runtime. Need ops good with Erlang runtime
  • 5
    Configuration must be done first, not by your code
  • 4
    Slow

related RabbitMQ posts

James Cunningham
Operations Engineer at Sentry · | 18 upvotes · 1.8M views
Shared insights
on
CeleryCeleryRabbitMQRabbitMQ
at

As Sentry runs throughout the day, there are about 50 different offline tasks that we execute—anything from “process this event, pretty please” to “send all of these cool people some emails.” There are some that we execute once a day and some that execute thousands per second.

Managing this variety requires a reliably high-throughput message-passing technology. We use Celery's RabbitMQ implementation, and we stumbled upon a great feature called Federation that allows us to partition our task queue across any number of RabbitMQ servers and gives us the confidence that, if any single server gets backlogged, others will pitch in and distribute some of the backlogged tasks to their consumers.

#MessageQueue

See more

Around the time of their Series A, Pinterest’s stack included Python and Django, with Tornado and Node.js as web servers. Memcached / Membase and Redis handled caching, with RabbitMQ handling queueing. Nginx, HAproxy and Varnish managed static-delivery and load-balancing, with persistent data storage handled by MySQL.

See more
Kafka logo

Kafka

23.5K
22K
607
Distributed, fault tolerant, high throughput pub-sub messaging system
23.5K
22K
+ 1
607
PROS OF KAFKA
  • 126
    High-throughput
  • 119
    Distributed
  • 92
    Scalable
  • 86
    High-Performance
  • 66
    Durable
  • 38
    Publish-Subscribe
  • 19
    Simple-to-use
  • 18
    Open source
  • 12
    Written in Scala and java. Runs on JVM
  • 9
    Message broker + Streaming system
  • 4
    KSQL
  • 4
    Avro schema integration
  • 4
    Robust
  • 3
    Suport Multiple clients
  • 2
    Extremely good parallelism constructs
  • 2
    Partioned, replayable log
  • 1
    Simple publisher / multi-subscriber model
  • 1
    Fun
  • 1
    Flexible
CONS OF KAFKA
  • 32
    Non-Java clients are second-class citizens
  • 29
    Needs Zookeeper
  • 9
    Operational difficulties
  • 5
    Terrible Packaging

related Kafka posts

Nick Rockwell
SVP, Engineering at Fastly · | 46 upvotes · 4.1M views

When I joined NYT there was already broad dissatisfaction with the LAMP (Linux Apache HTTP Server MySQL PHP) Stack and the front end framework, in particular. So, I wasn't passing judgment on it. I mean, LAMP's fine, you can do good work in LAMP. It's a little dated at this point, but it's not ... I didn't want to rip it out for its own sake, but everyone else was like, "We don't like this, it's really inflexible." And I remember from being outside the company when that was called MIT FIVE when it had launched. And been observing it from the outside, and I was like, you guys took so long to do that and you did it so carefully, and yet you're not happy with your decisions. Why is that? That was more the impetus. If we're going to do this again, how are we going to do it in a way that we're gonna get a better result?

So we're moving quickly away from LAMP, I would say. So, right now, the new front end is React based and using Apollo. And we've been in a long, protracted, gradual rollout of the core experiences.

React is now talking to GraphQL as a primary API. There's a Node.js back end, to the front end, which is mainly for server-side rendering, as well.

Behind there, the main repository for the GraphQL server is a big table repository, that we call Bodega because it's a convenience store. And that reads off of a Kafka pipeline.

See more
Ashish Singh
Tech Lead, Big Data Platform at Pinterest · | 38 upvotes · 3.3M views

To provide employees with the critical need of interactive querying, we’ve worked with Presto, an open-source distributed SQL query engine, over the years. Operating Presto at Pinterest’s scale has involved resolving quite a few challenges like, supporting deeply nested and huge thrift schemas, slow/ bad worker detection and remediation, auto-scaling cluster, graceful cluster shutdown and impersonation support for ldap authenticator.

Our infrastructure is built on top of Amazon EC2 and we leverage Amazon S3 for storing our data. This separates compute and storage layers, and allows multiple compute clusters to share the S3 data.

We have hundreds of petabytes of data and tens of thousands of Apache Hive tables. Our Presto clusters are comprised of a fleet of 450 r4.8xl EC2 instances. Presto clusters together have over 100 TBs of memory and 14K vcpu cores. Within Pinterest, we have close to more than 1,000 monthly active users (out of total 1,600+ Pinterest employees) using Presto, who run about 400K queries on these clusters per month.

Each query submitted to Presto cluster is logged to a Kafka topic via Singer. Singer is a logging agent built at Pinterest and we talked about it in a previous post. Each query is logged when it is submitted and when it finishes. When a Presto cluster crashes, we will have query submitted events without corresponding query finished events. These events enable us to capture the effect of cluster crashes over time.

Each Presto cluster at Pinterest has workers on a mix of dedicated AWS EC2 instances and Kubernetes pods. Kubernetes platform provides us with the capability to add and remove workers from a Presto cluster very quickly. The best-case latency on bringing up a new worker on Kubernetes is less than a minute. However, when the Kubernetes cluster itself is out of resources and needs to scale up, it can take up to ten minutes. Some other advantages of deploying on Kubernetes platform is that our Presto deployment becomes agnostic of cloud vendor, instance types, OS, etc.

#BigData #AWS #DataScience #DataEngineering

See more
Akka logo

Akka

1.1K
1K
88
A platform to build and run apps that are elastic, agile, and resilient.
1.1K
1K
+ 1
88
PROS OF AKKA
  • 32
    Great concurrency model
  • 17
    Fast
  • 12
    Actor Library
  • 10
    Open source
  • 7
    Resilient
  • 5
    Message driven
  • 5
    Scalable
CONS OF AKKA
  • 3
    Mixing futures with Akka tell is difficult
  • 2
    Closing of futures
  • 2
    No type safety
  • 1
    Very difficult to refactor
  • 1
    Typed actors still not stable

related Akka posts

To solve the problem of scheduling and executing arbitrary tasks in its distributed infrastructure, PagerDuty created an open-source tool called Scheduler. Scheduler is written in Scala and uses Cassandra for task persistence. It also adds Apache Kafka to handle task queuing and partitioning, with Akka to structure the library’s concurrency.

The service’s logic schedules a task by passing it to the Scheduler’s Scala API, which serializes the task metadata and enqueues it into Kafka. Scheduler then consumes the tasks, and posts them to Cassandra to prevent data loss.

See more
Shared insights
on
AkkaAkkaKafkaKafka

I decided to use Akka instead of Kafka streams because I have personal relationships at @Lightbend.

See more
MassTransit logo

MassTransit

92
174
0
Lightweight message bus for creating distributed applications
92
174
+ 1
0
PROS OF MASSTRANSIT
    Be the first to leave a pro
    CONS OF MASSTRANSIT
      Be the first to leave a con

      related MassTransit posts

      MSMQ logo

      MSMQ

      32
      117
      3
      A technology for asynchronous messaging
      32
      117
      + 1
      3
      PROS OF MSMQ
      • 2
        Easy to learn
      • 1
        Cloud not needed
      CONS OF MSMQ
      • 1
        Windows dependency

      related MSMQ posts

      Hangfire logo

      Hangfire

      171
      249
      17
      Perform background processing in .NET and .NET Core applications
      171
      249
      + 1
      17
      PROS OF HANGFIRE
      • 7
        Integrated UI dashboard
      • 5
        Simple
      • 3
        Robust
      • 2
        In Memory
      • 0
        Simole
      CONS OF HANGFIRE
        Be the first to leave a con

        related Hangfire posts

        Chris Bleck
        Site Reliability Engineer at Cooperative Bank Of Thessaly · | 6 upvotes · 22.9K views

        We are a small bank and we have 5 VMware ESXi servers with mainly Windows Server VMs with numerous windows services installed and most of these servers have Microsoft SQL Server and Microsoft IIS installed. Also we have some applications that have application logs (mainly in a db table) and we have a few Hangfire instances and one MQ Series server.

        Now the management gave me the task of site reliability (I'm fairly new to this) which means all Windows Services must run 24/7 so I have to know if a service fails to start. All databases must run properly so I have to know locks, Query performance, and any SQL Agent job failures. The same goes for IIS websites/services must be up and running all the time.

        In addition to these, I must collect all the Hangfire job failures(which are a lot) as well as general server metrics like CPU, RAM, I/O Disk, Disk sizes, etc.

        On top of all these, I must setup alerts via Slack/sms or mail. Now the question which tool or a stack of tools can achieve all that?

        See more
        Apache Camel logo

        Apache Camel

        1.6K
        318
        22
        A versatile open source integration framework
        1.6K
        318
        + 1
        22
        PROS OF APACHE CAMEL
        • 5
          Based on Enterprise Integration Patterns
        • 4
          Has over 250 components
        • 4
          Free (open source)
        • 4
          Highly configurable
        • 3
          Open Source
        • 2
          Has great community
        CONS OF APACHE CAMEL
          Be the first to leave a con

          related Apache Camel posts