Skip to content

Instantly share code, notes, and snippets.

@gabrieljoelc
Last active June 25, 2019 00:05
Show Gist options
  • Save gabrieljoelc/ae7484b3f9e3edd077015865878b4bb5 to your computer and use it in GitHub Desktop.
Save gabrieljoelc/ae7484b3f9e3edd077015865878b4bb5 to your computer and use it in GitHub Desktop.

GistID: ae7484b3f9e3edd077015865878b4bb5

Goals

  • Build software as a platform via decomposition into components (i.e. microservices)
  • Drive microservice architecture through asynchronous inter-service communication (e.g. messaging)
  • Reduce developer friction when doing inter-service communication
    • Bus subscriptions via conventions over configuration
    • Locally smoke testing support (Azure Service Bus and Event Hub vs. RabbitMQ)
  • Increase confidence in endpoints by making them testable
  • Be de-coupled from cloud while using consumption-based offerings (e.g. Azure Function consumption plans)
  • Nice-to-have: Support .NET Core and .NET Framework

Tech options

Rebus

Repository here

  • Lightweight message bus framework
  • Original built with MSMQ in mind
  • Supports Azure Service Bus and RabbitMQ but with caveats
  • Unsure how it will work with Azure consumption plans via Function triggers

Function Monkey

Repository here

  • Configuration API to bind service objects to Azure Function triggers
  • Supports Azure Service Bus for Triggers and Output Bindings
  • Supports Event Hub Triggers
  • Supports SignalR Triggers!
  • Only works for Azure Function v2 (which doesn't work for .NET Framework)
  • No support for RabbitMQ out-of-the-box because there is no official Azure Function trigger for RabbitMQ

Both of these tools on their own have something that make it impossible to meet our goals. Can we build our own custom trigger and then a sub-library for Function Monkey?

Custom Azure Function Triggers

TODO: review this post

Is it possible to get consumption without Azure Functions?

Azure Function Consumption Alternatives

TODO: review the following:

References

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment