The first one in the infrastructure layer that we will look at is the Bus. The bus has been configured by default as BusGamma which is an implementation of NserviceBus.
The first thing that needs your attention is the Flex GammaServiceBusBridge, which is inherited from Flex BusGamma, and IFlexServiceBusBridge. This lets you use the bus in a decoupled way. If you notice here, it uses the EndpointConfiguration of NServiceBus.
We have by default three Endpoint configuration for you. One is the LearningBusConfiguration, that implements and inherits from FlexBusGammaDefaultEndpointConfiguration, which in turn is inherited from the EndpointConfiguration. Here the persistence is learning persistence and learning transport as provided by NServiceBus.
FlexBusGammaDefaultEndpointConfiguration will configure some of the default settings for you to use FlexBase objects by default.
Then we have AzureBusConfiguration. We have by default configured azure storage queue and azure storage persistence.
Then we have OnPremiseBusConfiguration also which uses SQLServer as a persistence and RabbitMQ as a transport.
You can go deeper into NserviceBus and other configuration information at a later stage.
The BusGammaServiceBus is configured at the StartUp configurations, which is being used as BusGammaServiceBusBridge by the IFlexServiceBusBridge to initialize the container with the bus.
You're free to configure as per your needs and requirements.
We will get more in-depth about the buses in later sections.