Gasless transaction

How can I perform a gasless transaction for my MetaTransactionTest smart contract using backend-controlled wallets?

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import "@openzeppelin/contracts/metatx/ERC2771Context.sol";

contract MetaTransactionTest is ERC2771Context {
    event MetaTransactionExecuted(address indexed sender);

    constructor(address trustedForwarder) ERC2771Context(trustedForwarder) {}

    function executeMetaTransaction() public {
        address sender = _msgSender();
        emit MetaTransactionExecuted(sender);
    }

    function versionRecipient() external pure returns (string memory) {
        return "1.0.0";
    }
}

I have backend-controlled wallets and need to implement gasless transactions. Any guidance or examples on how to achieve this would be greatly appreciated.