davidcastagnetoa/skills

grpc_server

Servidor gRPC de alto rendimiento para comunicación entre microservicios de inferencia ML del pipeline KYC

First seen Mar 3, 2026

Installation

$ npx skills add davidcastagnetoa/skills --skill grpc_server

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from davidcastagnetoa/skills · top by installs.

npx skills add davidcastagnetoa/skills

Browse all from davidcastagnetoa/skills

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 1
Default branch main
Open issues 0
Status Active

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 4,594 B
  • docs SUMMARY.md 126 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 13 installs

SKILL.md

grpc_server

Implementa un servidor gRPC para la comunicación de baja latencia entre los microservicios de inferencia del sistema de verificación de identidad. Reemplaza las llamadas REST entre servicios internos (face recognition, liveness detection, OCR, anti-spoofing) con comunicación binaria serializada mediante Protocol Buffers, reduciendo significativamente la latencia y el overhead de red en el pipeline.

When to use

Usa esta skill cuando necesites implementar o configurar la comunicación gRPC entre microservicios de inferencia dentro del modelserveragent. Aplica cuando la latencia de comunicación REST entre servicios internos impacte el objetivo de tiempo de respuesta total de 8 segundos del pipeline de verificación.

Instructions

  1. Definir los servicios y mensajes en archivos .proto para cada módulo de inferencia:

```protobuf syntax = "proto3"; package kyc.inference;

service FaceRecognitionService { rpc GetEmbedding (FaceRequest) returns (EmbeddingResponse); rpc CompareFaces (FaceCompareRequest) returns (MatchResponse); }

message FaceRequest { bytes imagedata = 1; string sessionid = 2; }

message EmbeddingResponse { repeated float embedding = 1; float confidence = 2; int64 inferencetimems = 3; }

message MatchResponse { float similarityscore = 1; bool ismatch = 2; float threshold_used = 3; } ```

  1. Generar el código Python a partir de los archivos proto:

``bash python -m grpctools.protoc -I./protos \ --pythonout=./generated \ --grpcpythonout=./generated \ protos/face_recognition.proto ``

  1. Implementar el servidor gRPC con el servicio de inferencia:

```python import grpc from concurrent import futures from generated import facerecognitionpb2grpc as pb2grpc

class FaceRecognitionServicer(pb2grpc.FaceRecognitionServiceServicer): def init(self, modelrunner): self.model = model_runner

def GetEmbedding(self, request, context): image = self.deserializeimage(request.image_data) embedding = self.model.predict(image) return EmbeddingResponse(embedding=embedding.tolist())

server = grpc.server(futures.ThreadPoolExecutor(maxworkers=10)) pb2grpc.addFaceRecognitionServiceServicertoserver(servicer, server) server.addinsecure_port('[::]:50051') server.start() ```

  1. Configurar interceptores para logging, métricas y autenticación entre servicios:

``python class MetricsInterceptor(grpc.ServerInterceptor): def interceptservice(self, continuation, handlercalldetails): starttime = time.time() response = continuation(handlercalldetails) latency = time.time() - starttime metrics.recordgrpclatency(handlercall_details.method, latency) return response ``

  1. Implementar el cliente gRPC para que los servicios consumidores (API gateway, motor de decisión) invoquen la inferencia:

``python channel = grpc.insecurechannel('model-server:50051') stub = pb2grpc.FaceRecognitionServiceStub(channel) response = stub.GetEmbedding(FaceRequest(imagedata=imagebytes, sessionid=sessionid)) ``

  1. Configurar health checking gRPC para integración con Kubernetes readiness/liveness probes:

``python from grpchealth.v1 import healthpb2grpc, health healthservicer = health.HealthServicer() healthpb2grpc.addHealthServicertoserver(healthservicer, server) ``

  1. Habilitar compresión gzip para las imágenes transmitidas entre servicios y configurar timeouts apropiados para cada tipo de llamada de inferencia.

Notes

  • Usar comunicación gRPC solo para la capa interna entre microservicios de inferencia; la API pública del sistema KYC debe mantener REST/HTTP para compatibilidad con clientes frontend.
  • La serialización binaria de Protocol Buffers reduce significativamente el tamaño de las imágenes transmitidas entre servicios comparado con JSON/base64, lo cual es crítico para el pipeline facial donde se transfieren múltiples imágenes por verificación.
  • Configurar deadlines (timeouts) por tipo de llamada: face embedding (~500ms), liveness check (~1s), face comparison (~300ms) para evitar que un servicio lento bloquee el pipeline completo.