such a well explained video. only after watching this have i understood the difference between microservice and event driven architecture. extremely clear explanations. thanks for the video
One thing not well explained in the video is that we should keep in mind that events are sent after the work is done. Or for long running process you can have an event saying processing and another one done (but even here you would probably use a queue). But in most of cases events mean something changed, the subcriber is not the one doing the work, it is doing extra work afterwards. You want the subscriber to read consistent data. (ex. a database)
Hi Karthik, Very well explained. Event driven architecture results in "Eventual consistency", so automating at API level becomes challenging at times. So far I used retry to overcome these flaky tests. Any suggestions from your side Karthik.
Hi Sharath, The best way to test the application is to test from the consumer of the event rather than the producer itself. Producer testing will make once again the classical thinking of testing the non-event driven APIs, other way will solve the problem Thanks,
Hey great video, quick question though. If the app/UI is always listening for events to be published, would that also mean that it will have to maintain a open websocket connection with the api? If so, wont this architecture require a open stateful connection for every connected client? Thinking of the increased infrastructure costs with this architecture, if any. Thanks
Yes, and these connections can be stored in a service that maps the customer id to the web socket session, using the event bus to initiate messages back to the client via web sockets. Everything is abstracts into these event reactive services so everything can scale, but not for maximum efficiency or even speed.
Hello Karthik, good video. I hope you are well in level 4. I have built a test strategy on a few micro-service orgs now and I am curious what your take is (given the example in this video).
Hi Mate, Yes L4 is hard, but keeping safe so far ! Hope you are doing safe too. Actually, I am planning to create an application on EDA using .NET and also wanted to explain how to test the same. This way, it will be even more better to understand. But to your question, the best way to test is to test the consumer rather the producer itself.
Hi buddy! Thank you for this. What about the data storage, where does that go? So mobile number change event is captured but what where is the mobile number history kept? I.e. at point 1 it was 1234 and was updated to 2345 and so someone can report on the history of the mobile number?
@@ExecuteAutomation is this a Queue? consumer polling from head or tail. if an event on head or tail, not consumed, the events behind will have to wait until the one on the top to be consumed?
@@AmNotLegend yes, but it’s event streaming queue using Kafka or RabbitMQ. It’s not like stuck there until someone consume, if so, there is no point in having this used by multiple services