Ответ
Работал с gRPC для межсервисного взаимодействия, RabbitMQ/Kafka для асинхронной обработки сообщений, Redis для кеширования и координации. Использовал etcd для распределённых конфигураций и Consul для service discovery.
Пример gRPC сервера:
type server struct{}
func (s *server) SayHello(ctx context.Context, req *pb.HelloRequest) (*pb.HelloReply, error) {
return &pb.HelloReply{Message: "Hello " + req.Name}, nil
}
func main() {
lis, _ := net.Listen("tcp", ":50051")
s := grpc.NewServer()
pb.RegisterGreeterServer(s, &server{})
s.Serve(lis)
}
Для оркестрации применял Kubernetes и Docker Swarm.