GistID: ae7484b3f9e3edd077015865878b4bb5
- 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
- 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
- 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?
TODO: review this post
Is it possible to get consumption without Azure Functions?
TODO: review the following:
- https://fission.io/
- https://docs.microsoft.com/en-us/azure/azure-functions/functions-kubernetes-keda
- https://blogs.msdn.microsoft.com/atverma/2018/09/26/azure-functions-2-0-create-debug-and-deploy-to-azure-kubernetes-service-aks/
- https://kubeless.io/
- https://winderresearch.com/a-comparison-of-serverless-frameworks-for-kubernetes-openfaas-openwhisk-fission-kubeless-and-more/