def save_to_cache_with_expiry(data: Any, cache_key: str, expiry_seconds: int) -> None:
    """
    Save data to cache with expiration time.
    
    Args:
        data: Any data to store in cache
        cache_key: Unique identifier for the cached data
        expiry_seconds: Number of seconds until the cache expires
    """
    the_module = dill.detect.getmodule(data)
    if the_module is not None:
        cloudpickle.register_pickle_by_value(the_module)
        
    current_time = int(time.time())
    expiry_time = current_time + expiry_seconds
    cache_key_full = f"cache_{cache_key}"
    
    cache_data = {
        'data': data,
        'expiry_time': expiry_time,
        'created_at': current_time
    }
    
    try:
        ClientConfiguration.delete(cache_key_full)
        serialized_data = base64.b64encode(cloudpickle.dumps(cache_data)).decode('utf-8')
        ClientConfiguration.set(cache_key_full, serialized_data)
    except Exception:
        ClientConfiguration.delete(cache_key_full)
        raise

    Save data to cache with expiration time.
    
    Args:
        data: Any data to store in cache
        cache_key: Unique identifier for the cached data
        expiry_seconds: Number of seconds until the cache expires
    
src/upsonic/storage/caching.py