An experiment in modern software design ideas. Explores DDD, CQRS, EventStore, and various approaches to message exchanges. HelloMessage is a simple example that hopefully explores many of the main principles of distributed microservices and messaging using C# in .NET and Microsoft Azure.
Azure functions act as a host for the domain to send, receive, and store the data. AzureFunctionHost is a microservice.
- A
Submission
is created for aUser
and submitted to the domain. - A
Submission
can beAccepted
orRejected
and will be inPending
state until the submission receives aResponse
. - An
Submission
will no not bePending
once an approval or rejection has been applied. - An
Approver
can accept or reject aSubmission
.
Application is the coordinator of the business logic and the first class consumer of the Domain. It provides infrastructure and logic atop of the Domain. Loose coupling and interfaces of the application take dependencies on the infrastructure but do not implement the details directly.
Two endpoints provide the interfaces need to submit and response to submissions.
Submission HTTP endpoints provides a way to send and check the status of Submissions on the host
Approval HTTP endpoitns provide a way to query the pending Submissions
as well as accept or reject the requests.
Provides the metal and hardware need to receive, send, and store data.
A console terminal that send submissions to the microservice.
A website to query and approve pending submissions.