Skip to content

pengux/pub-sub

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pub-sub

Example of pub-sub in Go using simple maps

How to run

go get
go run main.go

then point your requests at http://localhost:8080

to run the tests:

go test -race

API

Publisher:

  • publishing: POST /:topic_name with JSON body as a message (response 204)

Subscriber:

  • subscribing: POST /:topic_name/:subscriber_name (response 201)
  • unsubscribing: DELETE /:topic_name/:subscriber_name (response 204)
  • polling: GET /:topic_name/:subscriber_name (200 with JSON body as a message or 404 if no subscription found or 204 if no new messages are available)

Message format:

{
	"message" : "variable content string",
	"published" : "date" // returned only for polling
}

Improvements

  • Make the pub-sub non-locking
  • Add tests for concurrency
  • Use in a demo chat application

About

Example of pub-sub in Go

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages