Load test suite for matchmaking, battles and messaging
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 45/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- javascript, node.js
- Área
- backend, performance, testing
Línea de trabajo
Start by reading the backend socket protocol and existing test setup, then run the app with npm run dev and CODEARENA_RUNNER=local. Build the suite under backend/loadtest/ to cover matchmaking, battles and messaging, with correctness checks and latency summaries; ensure it refuses non-local targets unless explicitly overridden. Run npm test and node scripts/check-boundary.js, then commit docs/performance.md with real measurements and the first bottleneck found.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Nobody knows how many simultaneous battles one CodeArena backend can handle, or what breaks first. There are no load tests in the repo.
What to do
Add a load test suite in backend/loadtest/ that drives the real socket protocol:
- Matchmaking: N players join the queue at once at a spread of ratings. Measure time to match and check nobody is matched twice or left behind.
- Battles: N concurrent battles where both players send throttled
code-updateevents and submit at realistic times. Measure event latency to the opponent and submission round trip. - Messaging: bursts of direct and group messages.
- Use a fake runner for code execution so the test measures CodeArena, not Judge0. A separate mode can hit a real Judge0 to find its limits.
- One command with flags for scale and duration, plus a summary of p50, p95 and p99 latencies and error counts.
Deliverable beyond the tool
A short report in docs/performance.md: the numbers on a stated machine, the first bottleneck found, and its cause. If the cause is a bug, open an issue or fix it.
Rules
- The suite must assert correctness, not just measure speed. For example, every battle ends with exactly one result and no player is in two battles.
- Never runs against production by default. Refuse unless the target is localhost or
--i-know-what-im-doingis passed.
Definition of done
- Runs locally against
npm run devwithCODEARENA_RUNNER=local. - Report committed with real numbers.
npm testandnode scripts/check-boundary.jspass.
- Lenguaje dominante
- JavaScript
- Estrellas
- 0
- Forks
- 2
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de sennaicodes/codearena
-
Add issue and pull request templatesQuizá libre de nuevo @franciscorodr26 la tomó hace 18 días y no hay ningún pull request abierto. Abiertodocumentation good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
sennaicodes/codearena#13 · 1 comentario ·
-
enhancement help wanted
Dificultad 5/5 Más de una semana Aptitud para principiantes 45/100
sennaicodes/codearena#34 ·
-
enhancement help wanted
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
sennaicodes/codearena#33 ·
-
enhancement help wanted
Dificultad 5/5 Más de una semana Aptitud para principiantes 38/100
sennaicodes/codearena#31 ·
-
enhancement help wanted
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
sennaicodes/codearena#30 ·
Todos los issues de sennaicodes/codearena
Issues similares
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 70/100
521xueweihan/HelloGitHub#4133 ·
-
Dificultad 1/5 1-3 horas Aptitud para principiantes 88/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
c1overzz/dsh-bili-scroll#145 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
-
templates/plan.md lista o agente "Tracer", mas o pacote não inclui nenhum skill/agente com esse nomeAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100