Click here to open the demo site
The following section lets you create your own local development environment for testing, debugging, and contributing.
- VS Code or Visual Studio 2022
- .NET 6.0 SDK
- Azure Functions Core Tools
- Azure Subscription
- Azurite Storage Emulator
- NodeJS
- Azure Functions Extension for VS Code - Optional
- Azure Static Web Apps Extension for VS Code - Optional
- Azure Static Web Apps CLI - Optional
git clone https://github.com/ms-app-innovation/wellbeing
- If you are using Visual Studio 2022, Open 'EDA-Samples.sln'.
- If you are using VS Code, Open the folder.
- To run the Azure functions locally using Functions Core tool, navigate to src\api and
func start
- To run the React-App Front end locally using NodeJS and SWA CLI, navigate to src\react-app
npm install
npm start
swa start http://localhost:3000 --api-location ./api
- Simple architecture
- asdasd
- Tight coupling to downstream services
- Lacking resilience
- Dependency on downstream system can inhibit scalability
- Increased resiliency to downstream failures
- Can scale the correspondence for high load
- Additional services to manage
- Queue being down
- Potential to send the message multiple times
- Use an Azure queue
- Simple, cheap, no need for sessions, ordering, etc.
- Simple poison message handling
- Peek lock for competing consumers
- Removes distributed transaction
- Improves SLA of customer interaction
- More complex to build and operate
- If it’s vital to transactionally send messages, and to keep a high level of service for the end user, then this pattern is a great solution.
- Decouples Wellbeing app from downstream consumers
- Lacks 'Statement of overall system behavior'
- Event Grid / Service Bus Topic
- Reduces # of recievers who need to call the producer for data
- Need to deal Eventual Consistency
- Increases the size of data sent from the application
- Think about Event-Grid Schema vs Cloud-Event Schema
- Can model complex business processes
- Can version for new / roll out canaries
- Difficult to version in-process workflows
- Boiler plate code hides logic
- Business logic can creep in (ESB effect)
- Grows quickly in complexity
- Great for pipelines within a service
- Complex behaviour arises through events without central coordination
- Difficult to version long running processes
- Our scenario required emails to be sent. We can’t know for sure if they were
- Complex processes become difficult to follow and report on
- Complexity increases when actions involve more and more events
- Great when the business processes being driven are unrelated
- Simple to implement
- Requires no overarching orchestration
- Difficult to version long running in-progress workflows
- Great for sequential business processes where you may need to compensate.
Can model complex business processes Easy to version / roll out canaries Handles poison messages Message de-duplication at service bus
Tendency for business logic to sneak into the process manager
Use for complex business processes Buy, don’t build
- Very simple
- Can achieve massive scale by scaling out reads to replicas
- May hit a natural scale limit
- Some reports may become very complicated to generate from the model used to store the data
- Great if it fits your needs
- Be wary of querying a NOSQL Database as-if it was SQL
- Elegant model
- More complex to build
- More complex to operate
- Hotfixes are complicated
- Great with domains that are event based (e.g., financial transactions, share price changes)
- Use an abstraction like NEventStore
- Don’t let external services couple to your internal event sourcing events.