Skip to content

Implementation of the EventStore and CommandStore interfaces defined in comby with Postgres.

License

Notifications You must be signed in to change notification settings

gradientzero/comby-store-postgres

Repository files navigation

comby-store-postgres

Implementation of the EventStore and CommandStore interfaces defined in comby with Postgres. comby is a powerful application framework designed with Event Sourcing and Command Query Responsibility Segregation (CQRS) principles, written in Go.

License

Prerequisites

# run postgres locally for testings
docker run --name some-postgres -p 5432:5432 -e POSTGRES_PASSWORD=mysecretpassword -d postgres

Installation

comby-store-postgres supports the latest version of comby (v2), requires Go version 1.22+ and is based on Postgres driver lib/pq.

go get github.com/gradientzero/comby-store-postgres

Quickstart

import (
	"github.com/gradientzero/comby-store-postgres"
	"github.com/gradientzero/comby/v2"
)

// create postgres CommandStore
commandStore := store.NewCommandStorePostgres("localhost", 5432, "postgres", "mysecretpassword", "postgres")
if err = commandStore.Init(ctx,
    comby.CommandStoreOptionWithAttribute("anyKey", "anyValue"),
); err != nil {
    panic(err)
}
// create postgres EventStore
eventStore := store.NewEventStorePostgres("localhost", 5432, "postgres", "mysecretpassword", "postgres")
if err = eventStore.Init(ctx,
    comby.EventStoreOptionWithAttribute("anyKey", "anyValue"),
); err != nil {
    panic(err)
}

// create Facade
fc, _ := comby.NewFacade(
  comby.FacadeWithCommandStore(commandStore),
  comby.FacadeWithEventStore(eventStore),
)

Tests

go test -v ./...

Contributing

Please follow the guidelines in CONTRIBUTING.md.

License

This project is licensed under the MIT License.

Contact

https://www.gradient0.com

About

Implementation of the EventStore and CommandStore interfaces defined in comby with Postgres.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages