WORK IN PROGRESS
Benefiting from the advantages of event driven architectures does not have to mean a wholesale shift in your approach to interprocess communications. We help take the implementations you already have and assist you in your migration to a scalable alternative
Many organisations find the number of options available in this area overwhelming, and are unaware of the implications when making choices on system behaviour early on. We have successfully designed and built many event driven architectures, and we can help you identify the correct technologies and strategies to make this adoption a positive and efficient experience.
Separation of Responsibilities
Decoupling between services allows each service to perform its own tasks independently, and protects that service from problems in other services. Producers do not need to be aware of consumers, consumers are only concerned about the events they receive.
Services should remain completely autonomous, a change in one service should not require a change in another service.
Separation of responsibilities is something that needs to be determined before you reach implementation. Domain Driven Design is an approach we use to organise the often spaghetti like logic of complex systems.
The Outcomes
Scalability
Breaking the direct link between services enables many workers to pick up the tasks, well beyond the scale a request/response architected solution could ever achieve
Eventual Consistency
Decoupled and decentralized systems offer a more natural approach to service provision, but encounter challenges from networks that are less prevalent in monolithic systems
Extensibility
Without the tight coupling between services, extension and integration becomes a simpler task