I would like to learn the event driven system development. I mean the choreography with microservice architecture... but I don't really know where to start. Is there any1 familiar/experienced in this area who could answer some of my questions? I was thinking of set of small microservices written in SpringBoot but the thing I am a bit afraid of is the 'event-bus-kind-of-thing'. To clarify, I'll try to give an example. Let's say we have a registration feature in the app. So an end-user, using his browser, fills the form: username, password, email and submits. Then I have, let's say, 3 microservices: A, B, C.A - will create User AccountB - will send an email to provided email address with some tokenC - will do something fancy, doesn't really matter what but let's assume it's something important/key.Here come my questions: How to let all the microservices know about what they should do?(I don't want to make 3 calls to different endpoints because that'snot choreography but orchestration)What do to if at some point an error occurs? Let's say it waspossible to create the account but microservice-B was unable to sendthe email for some reason.How to return information to the end-user? I would need to somehowaccumulate results of operations of A, B, C microservices and thensend it to the end-user. But how? Do I need some kind of dispatchermicroservice? Do I need to use WebSockets?I came across AWS Kinesis and I wanted to use it as the event-bus. Are there any good alternatives for Java? Maybe should I use some queue like AWS SQS? Do I have to create separate streams/queues for different kinds of events? Or only 1 queue and mark them with some EventType enum? I have some knowledge about AWS so I'd prefer sticking to it if possible.
Java event driven - choreography with microservices
architecture;aws;event handling