FireAndForget

Easy to configure, lightweight and asynchronous message bus

Configuration

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" ?>
<configuration>
  <configSections>
    <section name="ServiceBusConfiguration" 
             type="FireAndForget.Configuration.ServiceBusConfigurationSection, FireAndForget"/>
  </configSections>

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

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

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

Database

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.