milvus/pkg/streaming/util/message/message_handler.go
Zhen Ye 0988807160
enhance: enable write ahead buffer for streaming service (#39771)
issue: #38399

- Make a timetick-commit-based write ahead buffer at write side.
- Add a switchable scanner at read side to transfer the state between
catchup and tailing read

Signed-off-by: chyezh <chyezh@outlook.com>
2025-02-12 20:38:46 +08:00

33 lines
985 B
Go

package message
import (
"context"
)
// HandleParam is the parameter for handler.
type HandleParam struct {
Ctx context.Context
Upstream <-chan ImmutableMessage
Message ImmutableMessage
}
// HandleResult is the result of handler.
type HandleResult struct {
Incoming ImmutableMessage // Not nil if upstream return new message.
MessageHandled bool // True if Message is handled successfully.
Error error // Error is context is canceled.
}
// Handler is used to handle message read from log.
type Handler interface {
// Handle is the callback for handling message.
// Return true if the message is consumed, false if the message is not consumed.
// Should return error if and only if ctx is done.
// !!! It's a bad implementation for compatibility for msgstream,
// will be removed in the future.
Handle(param HandleParam) HandleResult
// Close is called after all messages are handled or handling is interrupted.
Close()
}