v0.22.0
To use v0.22 of Service Weaver, run the following commands in the root of your application's module:
go get github.com/ServiceWeaver/[email protected] # Update the weaver module.
go install github.com/ServiceWeaver/weaver/cmd/[email protected] # Update the weaver command line tool.
Runtime Graph API Improvements
A Service Weaver application is composed of a directed acyclic graph of components. When you build a Service Weaver application, the component call graph is embedded into the binary itself. In v0.22.0, we improved the API of the bin.ReadComponentGraph
function, which extracts and returns the component call graph. Now, bin.ReadComponentGraph
returns a fully-fledged graph data structure, which has some helpful graph algorithms that let you do things like iterate over the graph in topological order.
- Add a graph library and use it to represent the component call-graph. by @spetrovic77 in #638
- Add DFS utilities to the graph library. by @spetrovic77 in #642
Example Chat App Improvements
The chat app is an example Service Weaver application that is backed by a MySQL database. v0.22.0 includes instructions on how to run the application locally against a MySQL instance running in Docker, and how to run the application on Kubernetes against a MySQL instance running in the Kubernetes cluster. If you want to learn how to write and deploy a database-backed Service Weaver application, the chat app is a great place to look.
- Added local MySQL instructions for chat app. by @mwhittaker in #639
- Use docker containers to test the chat app. by @mwhittaker in #641
- Added instructions to run chat app on Kubernetes. by @mwhittaker in #645
Bank of Anthos Example App
We ported Bank of Anthos to Service Weaver.
- Ported Bank of Anthos. by @mwhittaker in #438
Bug Fixes
- Avoid 'weaver multi' zombie main components. by @mwhittaker in #644
New Contributors
Full Changelog: v0.21.2...v0.22.0