• Stars
    star
    11
  • Rank 1,694,829 (Top 34 %)
  • Language
    Go
  • License
    MIT License
  • Created about 5 years ago
  • Updated almost 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Simple command bus for GO

GO CommandBus

Build Status Codecov branch GoDoc Go Report Card License

A slight and pluggable command-bus for Go.

Install

Use go get.

$ go get github.com/lana/go-commandbus

Then import the package into your own code:

import "github.com/lana/go-commandbus"

Usage

package main

import (
	"context"
	"log"

	"github.com/lana/go-commandbus"
)

type CreateUser struct {
	Name string
}

func CreateHandler(ctx context.Context, cmd *CreateUser) error {
	log.Printf("user %s created", cmd.Name)

	return nil
}

func main() {
	bus := commandbus.New()

	err := bus.Register(&CreateUser{}, CreateHandler)

	if err != nil {
		log.Error(err)
		os.Exit(1)
	}

	err = bus.Execute(context.Background(), &CreateUser{"go-commandbus"})

	if err != nil {
		log.Error(err)
		os.Exit(1)
	}
}

License

This project is released under the MIT licence. See LICENSE for more details.