In this architecture, a happy scenario would be:
the user microservice registers a user, saving information about her in its local database
the user microservice marks this user with a flag. It could signify that this user hasn't yet been validated and doesn't have access to full system functionality
a confirmation of registration is sent to the user with a warning that not all functionality of the system is accessible right away
the user microservice sends a message to the validation microservice to do the background check of a user
the validation microservice runs the background check and sends a message to the user microservice with the results of the check
if the results are positive, the user microservice unblocks the user
if the results are negative, the user microservice deletes the user account
After we've gone through all these steps, the system should be in a consistent state. However, for some period of time, the user entity appeared to be in an incomplete state.
The last step, when the user microservice removes the invalid account, is a compensation phase.