I would prefer to implement it using a synchronous approach and then switch to asynchronous at deployment via kafka etc this way could simply focus on bussniss logical