Easy to configure, lightweight and asynchronous message bus


There is not a lot to configure. Nearly all configurations are stored in the app.config of the console application. Per default the Message Bus is executed as a self hosted HTTP container within a console application. The section ServiceBusConfiguration is necessary for FireAndForget to run. There are very important settings:

<?xml version="1.0" encoding="utf-8" ?>
    <section name="ServiceBusConfiguration" 
             type="FireAndForget.Configuration.ServiceBusConfigurationSection, FireAndForget"/>

    <add key="repository" 
         value="FireAndForget.Core.Persistence.SqlServerRepository, FireAndForget.Core"/>
    <add name="sqlserver" connectionString="Server=localhost;Database=FireAndForget;Trusted_Connection=True;" providerName="System.Data.SqlClient"/>

    <Server uri="http://localhost:2900"/>
      <Worker name="default"/>
      <Worker name="test"/>
      <Executor worker="default" 
                type="FireAndForget.TestClient.TaskExecutors.DefaultTaskExecutor, FireAndForget.TestClient"/>
      <Executor worker="test" 
                type="FireAndForget.TestClient.TaskExecutors.TestTaskExecutor, FireAndForget.TestClient"/>

If you create your own executor that needs a configuration, add the settings to the app.config and read it within your executor.


All messages are persisted, so erroneous/unfinished tasks can be reexecuted, if necessary. Therefore a storage is needed. By default there is an implementation for Microsoft SQL Server. The needed table and indices are created by FireAndForget. All you need is to create and/or configure the used database within the connection string.