import "github.com/blueprint-uservices/blueprint/examples/sockshop/wiring/specs"
Package specs implements wiring specs for the SockShop application.
The wiring spec can be specified using the -w option when running wiring/main.go
A simple wiring spec that compiles all services to a single process and therefore directly invoke each other. No RPC, containers, processes etc. are used.
var Basic = cmdbuilder.SpecOption{
Name: "basic",
Description: "A basic single-process wiring spec with no modifiers",
Build: makeBasicSpec,
}
A wiring spec that deploys each service into its own Docker container and using gRPC to communicate between services.
All RPC calls are retried up to 3 times. RPC clients use a client pool with 10 clients. All services are instrumented with OpenTelemetry and traces are exported to Zipkin
The user, cart, shipping, and orders services using separate MongoDB instances to store their data. The catalogue service uses MySQL to store catalogue data. The shipping service and queue master service run within the same process.
var Docker = cmdbuilder.SpecOption{
Name: "docker",
Description: "Deploys each service in a separate container with gRPC, and uses mongodb as NoSQL database backends.",
Build: makeDockerSpec,
}
A wiring spec that deploys each service into its own Docker container and using gRPC to communicate between services. All RPC calls are retried up to 3 times. RPC clients use a client pool with 10 clients. All services are instrumented with OpenTelemetry and traces are exported to Zipkin The user, cart, shipping, and orders services using separate MongoDB instances to store their data. The catalogue service uses MySQL to store catalogue data.
var DockerRabbit = cmdbuilder.SpecOption{
Name: "rabbit",
Description: "Deploys each service in a separate container with gRPC, and uses mongodb as NoSQL database backends and rabbitmq as the queue backend.",
Build: makeDockerRabbitSpec,
}
A wiring spec that deploys each service to a separate process, with services communicating over GRPC. The user, cart, shipping, and order services use simple in-memory NoSQL databases to store their data. The catalogue service uses a simple in-memory sqlite database to store its data. The shipping service and queue master service run within the same process (TODO: separate processes)
var GRPC = cmdbuilder.SpecOption{
Name: "grpc",
Description: "Deploys each service in a separate process with gRPC.",
Build: makeGrpcSpec,
}
Generated by gomarkdoc