# serviceweaver/weaver

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/serviceweaver-weaver).**

4,846 stars · 264 forks · Go · apache-2.0

## Links

- GitHub: https://github.com/ServiceWeaver/weaver
- Homepage: https://serviceweaver.dev
- awesome-repositories: https://awesome-repositories.com/repository/serviceweaver-weaver.md

## Description

Weaver is a distributed application framework and remote procedure call system that allows developers to organize logic into independent components. It provides a multi-process execution environment where these components communicate via automated serialization, enabling applications to run as a single unit locally or as a distributed system across multiple cloud machines.

The framework distinguishes itself through a configuration-driven topology mapping that allows the same logic to execute as a local function call or a remote network request without altering the business logic. It includes a Kubernetes deployment orchestrator for managing regional rollouts and load balancing, as well as version rollout management to prevent cross-version communication errors during updates.

The system covers broad capability areas including traffic management through affinity-based routing and replica sharding, and a distributed telemetry suite for collecting logs, metrics, and traces. It also provides tools for distributed systems testing, such as component mocking and local debugging of cloud applications.

Deployment targets include Kubernetes clusters, serverless containers, and remote machines via secure shell access.

## Tags

### Networking & Communication

- [Remote Procedure Calls](https://awesome-repositories.com/f/networking-communication/remote-procedure-calls.md) — Implements a remote procedure call system to execute logic across distributed components using standard method calls. ([source](https://serviceweaver.dev/))
- [Affinity-Based Routing](https://awesome-repositories.com/f/networking-communication/network-infrastructure-routing/network-routing-traffic-management/request-routing/affinity-based-routing.md) — Implements routing keys to direct method calls to specific replicas, improving cache hit ratios and data locality. ([source](https://serviceweaver.dev/docs.html))
- [Contextual Metadata Propagation](https://awesome-repositories.com/f/networking-communication/tracing-context-propagation/contextual-metadata-propagation.md) — Passes request-scoped key-value metadata through the execution context across process boundaries. ([source](https://serviceweaver.dev/docs.html))
- [Replica Sharding and Affinity](https://awesome-repositories.com/f/networking-communication/network-infrastructure-routing/network-routing-traffic-management/request-routing/replica-sharding-and-affinity.md) — Manages component replica placement and routes requests via sharding or affinity to balance load and optimize performance.
- [Component Affinity Routing](https://awesome-repositories.com/f/networking-communication/network-infrastructure-routing/network-routing-traffic-management/request-routing/user-affinity-routing/component-affinity-routing.md) — Directs method calls to specific component replicas using routing keys to optimize data locality and cache performance.

### Software Engineering & Architecture

- [Distributed Application Frameworks](https://awesome-repositories.com/f/software-engineering-architecture/distributed-application-frameworks.md) — Framework for building scalable systems by organizing logic into independent components that communicate via remote procedure calls.
- [Configuration-Driven Topology Mapping](https://awesome-repositories.com/f/software-engineering-architecture/configuration-driven-topology-mapping.md) — Uses external files to define how components are grouped, placed, and networked across local and cloud environments.
- [Distributed Application Building](https://awesome-repositories.com/f/software-engineering-architecture/distributed-application-building.md) — Constructs applications as a set of components that run as a single unit locally or across multiple machines. ([source](https://serviceweaver.dev/docs.html))
- [Distributed Component Definitions](https://awesome-repositories.com/f/software-engineering-architecture/distributed-component-definitions.md) — Organizes application logic into independent units that communicate without manual networking or serialization code. ([source](https://serviceweaver.dev/))
- [Automated Serialization Generation](https://awesome-repositories.com/f/software-engineering-architecture/interface-definition-languages/type-safe-code-generators/automated-serialization-generation.md) — Automatically produces serialization logic for complex data structures to ensure type-safe communication between remote processes.
- [Process-Agnostic Execution](https://awesome-repositories.com/f/software-engineering-architecture/process-agnostic-execution.md) — Allows the same logic to run as a local function call or a remote network request based on deployment configuration.
- [Canary Version Rollouts](https://awesome-repositories.com/f/software-engineering-architecture/api-versioning-strategies/version-pinning/canary-version-rollouts.md) — Manages incremental deployments by pinning client requests to specific versions to prevent cross-version incompatibility.
- [Version Pinning Strategies](https://awesome-repositories.com/f/software-engineering-architecture/configuration-versioning/deployment-versioners/version-pinning-strategies.md) — Ensures client requests stay within a single version during rolling updates to prevent cross-version communication errors. ([source](https://serviceweaver.dev/docs.html))
- [Local Cloud Simulation](https://awesome-repositories.com/f/software-engineering-architecture/microservices-development/local-cluster-dependency-debugging/local-cloud-simulation.md) — Enables developers to run and debug distributed component logic on a local machine before deploying to the cloud. ([source](https://serviceweaver.dev/blog))
- [Process Colocation](https://awesome-repositories.com/f/software-engineering-architecture/process-colocation.md) — Runs specific components within the same operating system process to eliminate network errors and reduce latency. ([source](https://serviceweaver.dev/docs.html))

### Data & Databases

- [Complex Data Serialization](https://awesome-repositories.com/f/data-databases/complex-data-serialization.md) — Provides automated marshaling code for complex data structures and primitive types for network transmission. ([source](https://serviceweaver.dev/docs.html))

### DevOps & Infrastructure

- [Component Replica Management](https://awesome-repositories.com/f/devops-infrastructure/component-replica-management.md) — Distributes component instances across multiple machines and adjusts replica counts to match system load. ([source](https://serviceweaver.dev/))
- [Execution Environments](https://awesome-repositories.com/f/devops-infrastructure/execution-environments.md) — Provides an environment where distributed logic runs as a single unit locally or across cloud machines.
- [Request Sharding](https://awesome-repositories.com/f/devops-infrastructure/high-availability-clusters/request-sharding.md) — Distributes incoming requests among multiple component replicas to balance load and increase total throughput. ([source](https://serviceweaver.dev/))
- [Multi-Cluster Deployment Managers](https://awesome-repositories.com/f/devops-infrastructure/kubernetes-cluster-management/multi-cluster-deployment-managers.md) — Orchestrates application rollouts, regional load balancing, and container packaging across multiple Kubernetes clusters.
- [Kubernetes Deployment Management](https://awesome-repositories.com/f/devops-infrastructure/kubernetes-deployments/kubernetes-application-deployments/kubernetes-deployment-management.md) — Manages the deployment state and regional rollouts of containerized binaries on Kubernetes clusters.
- [Cloud Deployment Automation](https://awesome-repositories.com/f/devops-infrastructure/cloud-deployment-automation.md) — Containerizes applications and manages incremental regional rollouts using canary clusters to reduce release risks. ([source](https://serviceweaver.dev/docs.html))
- [Multi-Environment Deployments](https://awesome-repositories.com/f/devops-infrastructure/cloud-infrastructure/cloud-computing-serverless/development-deployment-environments/cloud-deployment/hybrid-local-cloud-deployments/multi-environment-deployments.md) — Transitions applications from local development to cloud production without altering the underlying business logic. ([source](https://serviceweaver.dev/))
- [Cloud Orchestration](https://awesome-repositories.com/f/devops-infrastructure/cloud-orchestration.md) — Orchestrates the movement of applications into cloud environments using cluster management tools. ([source](https://serviceweaver.dev/blog))
- [Component Replica Sharding](https://awesome-repositories.com/f/devops-infrastructure/high-availability-clusters/component-replica-sharding.md) — Distributes incoming traffic across multiple component instances to balance load and increase system throughput.
- [Kubernetes Deployments](https://awesome-repositories.com/f/devops-infrastructure/kubernetes-deployments.md) — Packages binaries into containers and provisions clusters, load balancers, and networking across multiple regions. ([source](https://serviceweaver.dev/docs.html))

### System Administration & Monitoring

- [Cloud Telemetry Suites](https://awesome-repositories.com/f/system-administration-monitoring/cloud-telemetry-suites.md) — Provides an integrated suite for collecting and aggregating logs, metrics, and traces across distributed processes.
- [Activity Execution Logs](https://awesome-repositories.com/f/system-administration-monitoring/activity-monitors/activity-execution-logs.md) — Captures and filters logs using identifiers and key-value attributes to track individual component behavior. ([source](https://serviceweaver.dev/docs.html))
- [Application Metric Tracking](https://awesome-repositories.com/f/system-administration-monitoring/application-metric-tracking.md) — Collects counters and histograms for custom logic while monitoring method latency and throughput. ([source](https://serviceweaver.dev/docs.html))
- [Distributed Tracing](https://awesome-repositories.com/f/system-administration-monitoring/monitoring-and-observability/observability-platforms/distributed-tracing-execution-analysis/distributed-tracing.md) — Exports request and method call traces to monitoring tools using OpenTelemetry standards. ([source](https://serviceweaver.dev/docs.html))

### Testing & Quality Assurance

- [Distributed Logic Testing](https://awesome-repositories.com/f/testing-quality-assurance/distributed-logic-testing.md) — Provides tools to verify that application logic behaves consistently whether running locally or across a distributed cloud environment. ([source](https://serviceweaver.dev/docs.html))
- [Distributed Profile Aggregation](https://awesome-repositories.com/f/testing-quality-assurance/performance-testing-analysis/performance-profiling/distributed-profile-aggregation.md) — Aggregates performance profiles from multiple processes and machines into a single unified view. ([source](https://serviceweaver.dev/docs.html))
- [Dependency Mocking](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/dependency-mocking.md) — Replaces real logic with fake versions during testing to isolate and control external dependencies. ([source](https://serviceweaver.dev/docs.html))
- [Distributed Systems Testing](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/e2e-integration-testing/distributed-systems-testing.md) — Verifies application logic through local debugging and remote execution modes using component mocks.
