kiwi-sdk 0.1.1

The Kiwi SDK allows you to write pluggable modules that hook into the Kiwi runtime.
Documentation
interface intercept-types {
    // Plugin context
    record context {
        auth: option<list<u8>>,
        connection: connection-ctx,
        event: event-ctx,
    }

    variant connection-ctx {
        websocket(websocket),
    }

    variant event-ctx {
        kafka(kafka-event-ctx),
        counter(counter-event-ctx),
    }

    record counter-event-ctx {
        source-id: string,
        count: u64,
    }

    record kafka-event-ctx {
        payload: option<list<u8>>,
        source-id: string,
        topic: string,
        timestamp: option<u64>,
        partition: u32,
        offset: u64,
    }

    record websocket {
        addr: option<string>,
    }

    variant transformed-payload {
        kafka(option<list<u8>>),
        counter(u64),
    }

    variant action {
        forward,
        discard,
        transform(transformed-payload),
    }
}