Service Weaver
Introducing Service Weaver: A new open source framework for writing backend applications.
— Kelsey Hightower (@kelseyhightower) March 1, 2023
And the dope part, Service Weaver allows you to write applications as a modular monolith, and deploy it as a set of microservices using custom deployers. 🤯https://t.co/i9WONShpGl pic.twitter.com/RW9x7szbcW
Finally I might have that main.c of distributed programming (without having to write any YAML side files, manually create Docker containers, ... , and perhaps at last REST in peace), although it might have to be main.go https://t.co/6qaU81SMNW
— Satnam Singh (@satnam6502) March 3, 2023
Twitter Space discussion introducing Service Weaver:
https://twitter.com/i/spaces/1yoKMZejmyOGQ
You'll write independent programs that communicate through APIs and don't share memory (like Erlang actors), but the build&deploy system will assemble subsets of those programs into a monoliths to optimize for communication, latency, availability, etc.
— Sameer Ajmani (@Sajma) December 11, 2017
Official Site:
A Service Weaver application is composed of a number components. A component is represented as a regular Go interface, and components interact with each other by calling the methods defined by these interfaces. This makes writing Service Weaver applications easy. You don't have to write any networking or serialization code; you just write Go. Service Weaver also provides libraries for logging, metrics, tracing, routing, testing, and more.
You can deploy a Service Weaver application as easily as running a single command. Under the covers, Service Weaver will dissect your binary along component boundaries, allowing different components to run on different machines. Service Weaver will replicate, autoscale, and co-locate these distributed components for you. It will also manage all the networking details on your behalf, ensuring that different components can communicate with each other and that clients can communicate with your application.
Sounds promising... something new to check out.