Pandora.Azure.WebJobs.PipelineCore

Provides shared pipeline functionality for message processing


Keywords
"Pandora, Jewelry", Azure, WebJobs, Pipeline
License
MIT
Install
Install-Package Pandora.Azure.WebJobs.PipelineCore -Version 1.0.1

Documentation

Azure Webjobs SDK Pipelines for Azure ServiceBus

Our use case

Webjobs currently allow for limited extension points. Pre/Post message processing requires custom MessagingProvider and MessageProcessor. This project aims to provide a more OWIN like composable experience.

Flow control

Currently, flow control looks something like this

if(ShouldProcess(message))
{
    var functionResult = RunTrigger(message)
    PostTriggerProcessing(functionResult, message)
}

We want to be able to add in several messages like this

(context, next) =>
{
    PreProcessWork()
    next()
    PostProcessWork()
}

So when both these patterns are composed, the flow control should look something like

PreProcessWork() 1->n
if(all stages of the pipe are processed)
{
    var functionResult = RunTrigger(message)
    PostTriggerProcessing(functionResult, message)
    PostProcessWork() n->1
}

##Tracing Tracing can be turned on by adding in

<switches>
  <add name="Pandora.Azure.WebJobs.PipelineCore" value="Verbose" />
</switches>
<sources>
  <source name="Pandora.Azure.WebJobs.PipelineCore" />
</sources>

Installation

You can obtain it through Nuget with:

Install-Package Pandora.Azure.WebJobs.PipelineCore

Or clone this repo and reference it.