diff --git a/Roadmap-and-Milestones-for-future-releases.md b/Roadmap-and-Milestones-for-future-releases.md index 43cb401..53774a5 100644 --- a/Roadmap-and-Milestones-for-future-releases.md +++ b/Roadmap-and-Milestones-for-future-releases.md @@ -6,12 +6,17 @@ - Implement support for Windows Containers running on Windows NanoServer using different Docker base images instead of the Linux based images (.NET Core code should be the same as it is cross-platform) - Fork or the same repo? -- Implement Event-Driven communication between microservices/containers based on Event-Bus interfaces and any simple inter-process communication implementation (That implementation could be swapped by any more advanced Service Bus, like Azure Service Bus using Topics) +- INTEGRATION EVENTS: Implement Event-Driven communication between microservices/containers based on Event-Bus interfaces and any simple inter-process communication implementation (That implementation could be swapped by any more advanced Service Bus, like Azure Service Bus using Topics) -- Implement "Idempotent" concept in communication/updates between microservices, so the same update (like a Payment or OrderCreation) cannot be executed multiple times. Decide if that is Application logic or Domain logic +- DOMAIN EVENTS: Implement Domain Events which is related but not the same as integration events for inter-microservice-communication. Domain Events are initially intended to be used within a specific microservice's Domain, although they could derive to integration events if what happened in a microservice's domain should impact other additional microservices. See: +Domain Events – Take 2: http://udidahan.com/2008/08/25/domain-events-take-2/ +http://www.tonytruong.net/domain-events-pattern-example/ +We should probably use Domain Events when implementing a SAGA example, so we should do both things altogether. - Implement a SAGA example of a long running instance of a business process (similar to a workflow but implemented as a class with state persistence). The business process would be the "Order-Process-Saga" workflow, involving multiple mock services like PaymentGateway, StockChecking, etc. while changing the Order's state until the order is shipped. Then a background job which fakes ordre delivery and changes order states to delivered. +- Implement "Idempotent" concept in communication/updates between microservices, so the same update (like a Payment or OrderCreation) cannot be executed multiple times. Decide if that is Application logic or Domain logic + - Resilient synchronous communication for queries- Like when using Circuit Breaker - Exception Handling - As middleware @@ -19,7 +24,7 @@ Middleware from ASP.NET Core with custom implementation which records specific e Business-Exceptions + Generic-Exception-Handler (ExceptionHandlerHandler) - Version Management of microservices - Techniques and things to have into account -Caos-Monkey term, etc. +Related to Caos-Monkey, etc. ## Roadmap (Future releases)