def gen_rowkey(
        sport_id: int,
        league_id: int,
        match_id: int,
        market: str,
        seq: int,
        period: str,
        vendor: str,
        timestamp: int) -> str:
    """Generate a row key based on the following format with ``#`` as the seperator.
    
    <sport_id>#<league_id>#<match_id>#<market>#<seq>#<period>#<vendor>#<timestamp>,
    
    Args:
        sport_id (int): The sport ID.
        league_id (int): The league ID.
        match_id (int): The match ID.
        market (str): The abbriviated market name, e.g., `1x2`, `ah`, `ou`, `ah_1st`, `ou_1st`, etc.
        seq (int): The sequence of the odd pair if more than 1 odd pairs exist in a market.
        period (str): The abbriviated current period, e.g., 1st half (`1h`)/2nd half (`2h`) in soccer, 1st quarter/2nd quarter/... etc. in basketball.
        vendor (str): The vendor from which the odd messages originate.
        timestamp (int): The epoch timestamp of the creation time included in the original odd message.

    Returns:
        str: The row key corresponds to the given input prarmeters.
    """
    rowkey_list = [str(sport_id), str(league_id), str(match_id), market,
                   str(seq), period, vendor, str(timestamp)]
    return ":".join(rowkey_list)