Build a set of services with your best microservice-architeture mindset, which solves of the following tasks in a Reset Password flow:
- Check whether the user email is valid valid ?
- Update the actual password for the user
- Update the password history of the user and when the user was last updated
- Send out an email to the user, informing that his password has been reset.
You can use whatever technology you wish. There must be documentation alongside the actual implementation, for the sake of learning and understanding.