It seems the common approach now is to make a v2/v3/etc. of your protocol and let your own users migrate. Previous versions will still run forever, but your frontend can push migration paths.