Boutique is an immutable state store with subscriptions to field changes for #golang

https://github.com/johnsiilver/boutique

Boutique is an immutable state store with subscriptions to field changes for Golang.
It provides a state store for storing immutable data. This allows data retrieved from the store to be used without synchronization.
In addition, Boutique allows subscriptions to be registered for changes to a data field or any field changes. Data is versioned, so you can compare the version number between the data retrieved and the last data pulled.

 

Finally, Boutique supports middleware for any change that is being committed to the store. This allows for features like debugging, long term storage, authorization checks, … to be created.

Best use cases?

Boutique is useful for:

  • A web based application that stores state on the server and not in Javascript clients. I like to use it instead of Redux.
  • An application that has lots of clients, each which need to store state and receive updates.
  • An application that has listeners sharing a single state with updates pushed to all listeners.