goevents

package module
v0.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 21, 2017 License: MIT Imports: 6 Imported by: 0

README

goevents

EventBus for golang

$ go get github.com/poying/goevents
$ glide get github.com/poying/goevents

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func RegisterPayloadType

func RegisterPayloadType(payloadType interface{})

RegisterPayloadType regiters payload type to payload encoder/decoder

Types

type Bus

type Bus interface {
	Publish(topic string, payload EventPayload) error
	AddHandler(handler EventHandler)
}

Bus represents event bus

func NewBus

func NewBus(producer Producer, consumer Consumer) Bus

NewBus creates an event bus

type Consumer

type Consumer interface {
	AddHandler(handler MessageHandler)
}

Consumer represents message consumer

type Event

type Event struct {
	Topic       string      `json:"topic"`
	ID          string      `json:"id"`
	EmittedTime time.Time   `json:"emitted_time"`
	Payload     interface{} `json:"payload"`
}

Event represents an event

func (*Event) MarshalJSON

func (event *Event) MarshalJSON() ([]byte, error)

func (*Event) Scan

func (event *Event) Scan(payload EventPayload) error

func (*Event) UnmarshalJSON

func (event *Event) UnmarshalJSON(b []byte) error

type EventHandler

type EventHandler interface {
	HandleEvent(event Event) error
}

EventHandler represents event handler

type EventPayload

type EventPayload interface{}

EventPayload represents payload of event

type Message

type Message interface {
	Decode() ([]byte, error)
}

Message represents message

type MessageHandler

type MessageHandler interface {
	HandleMessage(message Message) error
}

MessageHandler represents message handler

type Producer

type Producer interface {
	Publish(topic string, body []byte) error
}

Producer represents message producer

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL