Skip to content

mapuri/serfer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build Status

serf-event

A golang lib for writing serf event generators and handlers.

Goal

  • Have a more formal (verifiable) way of defining and generating serf events in Go!
  • eliminate some/most boilerplate code for getting a serf event handler logic ready in Go!

Status

Being implemented - not ready for use

Requirements

  • serf agent should be running (-event-handlers flag shall not be specified for handler process written using this library)

Writing an event handler

The event routers supports event name to handler match with ability for creating sub-router that allow inherit common path-prefix in their respective associated handlers.

import serf-event

func main() {
se = serf-event.NewHandler()
se.AddHandler("foo", fooHandler())
subSe = se.NewSubHanddler("bar/")
subSe.AddHandler("event1", barEvent1Handler())
...
...

# serf native events are supported
se.AddJoinHandler(joinHandler())
se.AddLeaveHandler(joinHandler())
...
...

# serf queries
se.AddResponder("", query1Responder())

se.Serve()
}

Writing a event generator

Event generators can be useful for code that is able to consume the events generated by it's own logic and hence can be useful for sharing event structures, without having to explicitly import serf client code.

func main() {
se = serf-event.NewGenerator()

err = se.PostEvent("", bytes)

resp, err  = se.PostQuery("", bytes)

}

About

A golang lib for writing serf event and query handlers

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published