github.com/johnsiilver/boutique (go): Package boutique provides an immutable state storage with subscriptions to changes in the store. It is intended to be a single storage for individual client data or a single state store for an application not requiring high QPS.  Features:  Drawbacks:  When we say immutable, we mean that everything gets copied, as Go does not have immutable objects or types other than strings. This means every update to a pointer or reference type (map, dict, slice) must make a copy of the data before changing it, not a mutation.  Because of modern processors, this copying is quite fast.  Boutique provides storage that is best designed in a modular method:  The files are best organized by using them as follows:  Please see github.com/johnsiilver/boutique for a complete guide to using this package.  Its complicated enough to warrant some documentation to guide you through.  If your very impatient, there is an example directory with examples of verying complexity.
Keywords: golang|golang-package|immutable|middleware|redux|state|store|subscriptions