Documentation ¶
Overview ¶
Package broker implements the broker runtime and protocol.JournalServer APIs (Read, Append, Replicate, List, Apply). Its `pipeline` type manages the coordination of write transactions, and `resolver` the mapping of journal names to Routes of responsible brokers. `replica` is a top-level collection of runtime state and maintenance tasks associated with the processing of a journal. gRPC proxy support is also implemented by this package.
Index ¶
- func NewKeySpace(prefix string) *keyspace.KeySpace
- func SetSharedPersister(p *fragment.Persister)
- type Service
- func (svc *Service) Append(stream pb.Journal_AppendServer) (err error)
- func (svc *Service) Apply(ctx context.Context, req *pb.ApplyRequest) (resp *pb.ApplyResponse, err error)
- func (svc *Service) IsNoopRouter() bool
- func (svc *Service) List(ctx context.Context, req *pb.ListRequest) (resp *pb.ListResponse, err error)
- func (svc *Service) ListFragments(ctx context.Context, req *pb.FragmentsRequest) (resp *pb.FragmentsResponse, err error)
- func (svc *Service) QueueTasks(tasks *task.Group, server *server.Server, finishFn func())
- func (svc *Service) Read(req *pb.ReadRequest, stream pb.Journal_ReadServer) (err error)
- func (svc *Service) Replicate(stream pb.Journal_ReplicateServer) (err error)
- func (svc *Service) Route(ctx context.Context, item string) pb.Route
- func (svc *Service) UpdateRoute(string, *pb.Route)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewKeySpace ¶
NewKeySpace returns a KeySpace suitable for use with an Allocator. It decodes allocator Items as JournalSpec messages, Members as BrokerSpecs, and Assignments as Routes.
func SetSharedPersister ¶
SetSharedPersister sets the Persister instance used by the `broker` package.
Types ¶
type Service ¶
type Service struct {
// contains filtered or unexported fields
}
Service is the top-level runtime concern of a Gazette Broker process. It drives local journal handling in response to allocator.State, powers journal resolution, and is also an implementation of protocol.JournalServer.
func NewService ¶
NewService constructs a new broker Service, driven by allocator.State.
func (*Service) Append ¶
func (svc *Service) Append(stream pb.Journal_AppendServer) (err error)
Append dispatches the JournalServer.Append API.
func (*Service) Apply ¶
func (svc *Service) Apply(ctx context.Context, req *pb.ApplyRequest) (resp *pb.ApplyResponse, err error)
Apply dispatches the JournalServer.Apply API.
func (*Service) List ¶
func (svc *Service) List(ctx context.Context, req *pb.ListRequest) (resp *pb.ListResponse, err error)
List dispatches the JournalServer.List API.
func (*Service) ListFragments ¶
func (svc *Service) ListFragments(ctx context.Context, req *pb.FragmentsRequest) (resp *pb.FragmentsResponse, err error)
ListFragments dispatches the JournalServer.ListFragments API.
func (*Service) QueueTasks ¶
QueueTasks of the Service to watch its KeySpace and serve local replicas.
func (*Service) Read ¶
func (svc *Service) Read(req *pb.ReadRequest, stream pb.Journal_ReadServer) (err error)
Read dispatches the JournalServer.Read API.
func (*Service) Replicate ¶
func (svc *Service) Replicate(stream pb.Journal_ReplicateServer) (err error)
Replicate dispatches the JournalServer.Replicate API.
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
Package client implements a Go client for interacting with the gRPC Journal service of Gazette brokers.
|
Package client implements a Go client for interacting with the gRPC Journal service of Gazette brokers. |
Package fragment is a broker-only package concerned with the mapping of journal offsets to protocol.Fragments, and from there to corresponding local or remote journal content.
|
Package fragment is a broker-only package concerned with the mapping of journal offsets to protocol.Fragments, and from there to corresponding local or remote journal content. |
Package journalspace provides mechanisms for mapping a collection of JournalSpecs into a minimally-described hierarchical structure, and for mapping back again.
|
Package journalspace provides mechanisms for mapping a collection of JournalSpecs into a minimally-described hierarchical structure, and for mapping back again. |
Package protocol defines the core broker datamodel, validation behaviors, and gRPC APIs which are shared across clients and broker servers.
|
Package protocol defines the core broker datamodel, validation behaviors, and gRPC APIs which are shared across clients and broker servers. |