We have an application setup where an authenticator app manages user data, and various standalone client applications need to access and store this data. All of these applications, including the authenticator, are built using Java Spring Boot.
Example Scenario:
- Jack registers in the authenticator app, providing his personal and company information.
- Jack requests access to App A. Once approved, App A fetches and stores Jack’s user and company data from the authenticator app into its own database.
- Jack then requests access to App B. Since he’s already registered with the authenticator, he only needs to request access to App B. Once approved, App B fetches and stores Jack’s user and company data similarly.
We tried using WebClient where the authenticator app’s backend communicates directly with each of the standalone apps. However, we’re uncertain if this approach scales well, especially when multiple requests are sent to the authenticator app simultaneously.
Considering Kafka:
We are considering using Kafka to handle this communication. However, we are unsure how to properly set it up so that the authenticator app can communicate effectively with each of the standalone apps individually.
Between the two approaches mentioned (WebClient and Kafka), is it more advisable to go with Kafka for our use case?
If not, what would be the most ideal solution for handling this type of data synchronization?