Message executor is responsible for submitting executeMessageXXX transactions on the destination chain.
Anyone can run an executor. In common cases we expect dApp developers to run executors for their apps. Note that dApp developers (executor operator) should be responsible to collect executor fees from the users.
Please refer to the Github Readme for the config handbook of the message executor.