Documentation ¶
Index ¶
- func ByteHandler(in []byte, serviceEndpointMap ServiceEndpointMap) (out []byte, err error)
- func RegisterMessageServiceServer(s *grpc.Server, srv MessageServiceServer)
- type Handler
- type KafkaConsumer
- type KafkaProducer
- type Message
- type MessageServiceClient
- type MessageServiceServer
- type RPCClient
- type RPCMessage
- func (*RPCMessage) Descriptor() ([]byte, []int)
- func (m *RPCMessage) GetData() []byte
- func (m *RPCMessage) GetNamespace() string
- func (*RPCMessage) ProtoMessage()
- func (m *RPCMessage) Reset()
- func (m *RPCMessage) String() string
- func (m *RPCMessage) XXX_DiscardUnknown()
- func (m *RPCMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (dst *RPCMessage) XXX_Merge(src proto.Message)
- func (m *RPCMessage) XXX_Size() int
- func (m *RPCMessage) XXX_Unmarshal(b []byte) error
- type RPCNamespace
- type RPCResponse
- func (*RPCResponse) Descriptor() ([]byte, []int)
- func (m *RPCResponse) GetData() []byte
- func (m *RPCResponse) GetError() string
- func (*RPCResponse) ProtoMessage()
- func (m *RPCResponse) Reset()
- func (m *RPCResponse) String() string
- func (m *RPCResponse) XXX_DiscardUnknown()
- func (m *RPCResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (dst *RPCResponse) XXX_Merge(src proto.Message)
- func (m *RPCResponse) XXX_Size() int
- func (m *RPCResponse) XXX_Unmarshal(b []byte) error
- type RPCServer
- func (rpc *RPCServer) Command(c context.Context, msg *RPCMessage) (resp *RPCResponse, err error)
- func (rpc *RPCServer) RegisterNamespace(name string)
- func (rpc *RPCServer) RegisterService(namespace string, service Service, ep endpoint.Endpoint)
- func (rpc *RPCServer) Start() (err error)
- func (rpc *RPCServer) Stop() (err error)
- type ServerInterface
- type ServerType
- type Service
- type ServiceEndpointMap
- type StartStopInterface
- type Topic
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ByteHandler ¶
func ByteHandler(in []byte, serviceEndpointMap ServiceEndpointMap) (out []byte, err error)
ByteHandler is an implementation of the ServerHandler. It takes in a slice of bytes, coming in from the network and demultiplexes the message using a map provided to it with all the service endpoints.
func RegisterMessageServiceServer ¶
func RegisterMessageServiceServer(s *grpc.Server, srv MessageServiceServer)
Types ¶
type Handler ¶
type Handler func(in []byte, serviceEndpointMap ServiceEndpointMap) (out []byte, err error)
Handler is a func signature implemented by the Endpoint Handle() method
type KafkaConsumer ¶
type KafkaConsumer struct {
// contains filtered or unexported fields
}
KafkaConsumer encapsulates all members used for the kafka server.
func MyKafkaConsumer ¶
func MyKafkaConsumer(cfg *configuration.KafkaConfig) (kc *KafkaConsumer, err error)
MyKafkaConsumer takes in configuration object and returns a new KafkaConsumer instance.
func (*KafkaConsumer) RegisterNamespace ¶
func (kc *KafkaConsumer) RegisterNamespace(name string)
RegisterNamespace is an implementation of the Server RegisterNamespace method. In kafka a namespace is the same as the channel name.
func (*KafkaConsumer) RegisterService ¶
func (kc *KafkaConsumer) RegisterService(namespace string, service Service, ep endpoint.Endpoint)
RegisterService is an implementation of the server RegisterService method. In kafka this is used to demux the messages coming in on a single channel/topic.
func (*KafkaConsumer) Start ¶
func (kc *KafkaConsumer) Start() (err error)
Start is an implementation of the Server Start() method.
func (*KafkaConsumer) Stop ¶
func (kc *KafkaConsumer) Stop() (err error)
Stop is an implementation of the Server Stop() method
type KafkaProducer ¶
type KafkaProducer struct {
// contains filtered or unexported fields
}
KafkaProducer encapsulates all the members used by a kafka producer
func MyKafkaProducer ¶
func MyKafkaProducer(cfg *configuration.KafkaConfig) (kp *KafkaProducer, err error)
MyKafkaProducer takes in a configuration object and returns a KafkaProducer instance.
func (*KafkaProducer) Produce ¶
func (kp *KafkaProducer) Produce(topic string, msg interface{}) (err error)
Produce is used by the client to send a message through kafka producer.
func (*KafkaProducer) Start ¶
func (kp *KafkaProducer) Start() (err error)
Start is used to start a go routine for the kafka producer. All messages produced are read by the msgChan passed to the producer() method.
func (*KafkaProducer) Stop ¶
func (kp *KafkaProducer) Stop() (err error)
Stop gracefully stops the kafka producer by writing to the quit channel.
type Message ¶
type Message struct { // Service is the service identifier. Set this to a unique string for a given server Service Service `json:"service,omitempty"` // ServiceMessage is the actual payload passed over the network. ServiceMessage string `json:"service_message,omitempty"` }
Message defines the message structure to be used by the microservice framework. It provides a mechanism to demux messages coming in a namespace by using its Service identifier.
type MessageServiceClient ¶
type MessageServiceClient interface {
Command(ctx context.Context, in *RPCMessage, opts ...grpc.CallOption) (*RPCResponse, error)
}
func NewMessageServiceClient ¶
func NewMessageServiceClient(cc *grpc.ClientConn) MessageServiceClient
type MessageServiceServer ¶
type MessageServiceServer interface {
Command(context.Context, *RPCMessage) (*RPCResponse, error)
}
type RPCClient ¶
type RPCClient struct {
// contains filtered or unexported fields
}
func MyRPCClient ¶
func MyRPCClient(cfg *configuration.RPCConfig) (rpc *RPCClient, err error)
type RPCMessage ¶
type RPCMessage struct { Namespace string `protobuf:"bytes,1,opt,name=Namespace" json:"Namespace,omitempty"` Data []byte `protobuf:"bytes,2,opt,name=Data,proto3" json:"Data,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func (*RPCMessage) Descriptor ¶
func (*RPCMessage) Descriptor() ([]byte, []int)
func (*RPCMessage) GetData ¶
func (m *RPCMessage) GetData() []byte
func (*RPCMessage) GetNamespace ¶
func (m *RPCMessage) GetNamespace() string
func (*RPCMessage) ProtoMessage ¶
func (*RPCMessage) ProtoMessage()
func (*RPCMessage) Reset ¶
func (m *RPCMessage) Reset()
func (*RPCMessage) String ¶
func (m *RPCMessage) String() string
func (*RPCMessage) XXX_DiscardUnknown ¶
func (m *RPCMessage) XXX_DiscardUnknown()
func (*RPCMessage) XXX_Marshal ¶
func (m *RPCMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (*RPCMessage) XXX_Merge ¶
func (dst *RPCMessage) XXX_Merge(src proto.Message)
func (*RPCMessage) XXX_Size ¶
func (m *RPCMessage) XXX_Size() int
func (*RPCMessage) XXX_Unmarshal ¶
func (m *RPCMessage) XXX_Unmarshal(b []byte) error
type RPCNamespace ¶
type RPCNamespace struct { Name string ServiceEndpointMap ServiceEndpointMap }
func MyRPCNamespace ¶
func MyRPCNamespace(name string) (namespace RPCNamespace)
type RPCResponse ¶
type RPCResponse struct { Data []byte `protobuf:"bytes,1,opt,name=Data,proto3" json:"Data,omitempty"` Error string `protobuf:"bytes,2,opt,name=Error" json:"Error,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
func (*RPCResponse) Descriptor ¶
func (*RPCResponse) Descriptor() ([]byte, []int)
func (*RPCResponse) GetData ¶
func (m *RPCResponse) GetData() []byte
func (*RPCResponse) GetError ¶
func (m *RPCResponse) GetError() string
func (*RPCResponse) ProtoMessage ¶
func (*RPCResponse) ProtoMessage()
func (*RPCResponse) Reset ¶
func (m *RPCResponse) Reset()
func (*RPCResponse) String ¶
func (m *RPCResponse) String() string
func (*RPCResponse) XXX_DiscardUnknown ¶
func (m *RPCResponse) XXX_DiscardUnknown()
func (*RPCResponse) XXX_Marshal ¶
func (m *RPCResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (*RPCResponse) XXX_Merge ¶
func (dst *RPCResponse) XXX_Merge(src proto.Message)
func (*RPCResponse) XXX_Size ¶
func (m *RPCResponse) XXX_Size() int
func (*RPCResponse) XXX_Unmarshal ¶
func (m *RPCResponse) XXX_Unmarshal(b []byte) error
type RPCServer ¶
type RPCServer struct {
// contains filtered or unexported fields
}
func MyRPCServer ¶
func MyRPCServer(cfg *configuration.RPCConfig) (rpc *RPCServer, err error)
func (*RPCServer) Command ¶
func (rpc *RPCServer) Command(c context.Context, msg *RPCMessage) (resp *RPCResponse, err error)
func (*RPCServer) RegisterNamespace ¶
func (*RPCServer) RegisterService ¶
type ServerInterface ¶
type ServerInterface interface { StartStopInterface // RegisterNamesapce is used to register a namespace (like a kafka channel/topic or grpc namespace) // with the server. RegisterNamespace(namespace string) // RegisterService is used to register a service and its endpoints with the server. RegisterService(namespace string, service Service, endpoint endpoint.Endpoint) }
ServerInterface defines the methods that all servers registed with the microservice must implement
type ServiceEndpointMap ¶
ServiceEndpointMap is a typedef for a map of Service endpoints identified by their service type
type StartStopInterface ¶
type StartStopInterface interface { // Start is used to start the server Start() (err error) // Stop is used to gracefully stop the server Stop() (err error) }
StartStopInterface is composed of the Start() and Stop() methods to be implemented by the server