Showing posts from May, 2022

Event Driven Hello World Program

  Event-driven microservices  can be straightforward to describe before they are implemented, tested and maintained. They are also highly responsive to new information in real-time, with latencies in Java of below 10 microseconds 99.99% of the time, depending on the functionality of the small, independently deployable microservice.    In this introductory article, we use an example  event-driven   Hello World  program ( a programming paradigm where the program flow is determined by events)  to step through   behaviour-driven   development , where we describe the behaviour the business needs first as test data and write a very simple  microservice  which turns input events like this. say: Hello World Into outputs like this, by adding an exclamation point say: Hello World !  # <- adds an exclamation point All the code for this example is  available on GitHub . When modelling Event-Driven systems, a useful pattern is to have event-driven core systems with gateways connecting to externa

How Behaviour Driven Development Works Well with Event Driven Architectures

  Behaviour Driven Development (BDD) and Event-Driven Architecture (EDA) work well together as they complement each other’s strengths and weaknesses. Using both can result in a shorter time to market for new functionality and a more maintainable system. Behaviour Driven Development  encourages a common language between users and developers in describing requirements in a form the users can understand but can also automatically be checked as the application is developed and maintained. BDD increases the inclusion of users, focuses on requirements capture and maintains the development velocity as the application increases in complexity. Figure 1. Behaviour Driven Development for the high level with Test Driven Development for the low level   Table 1. Pros and Cons of Behaviour-Driven Development   Event-Driven Architecture  models interactions between services as events. Events are facts about something that happened to represent a state change, such as an order placed or a payment proce