For many years, I have kept former domain names and I used HTACCESS directives to automatically route the traffic from the URLs with the former domain name to a new domain name. However, after sometimes, I have observed that my new webpages on the new domain names never ranked as well as before.
I remember that the traffic from Google even dropped to almost nothing. Then, I have decided to return a 404 not found for the URLs with the former domain rather than a 301 redirect. After 90 days, the traffic from Google increased even if I theoretically lost incoming google juice from the previous domain.
It was like the previous domain redirections penalized the new domain. It took months before the former URLs disappeared from the Google search results. In order to speed up this process, I kept a sitemap with the former URLs that returned a 404 error not found.
I like to repeat that changing a domain name is never done without hassle. When you choose a domain name try to stick to it.
If you decide to change your domain name, I would encourage to send a message to the people who link to you asking them to change the domain name inside their links to your domain name. Then, do what he needs to return 404 errors against the former URLs.