Galaxio·Team
ES
GitHub
Galaxio Team / Desde 2018
Estado del sistema — sincronizado
v3.0 · ECMA / 2026
Open-source · Ingeniería de rendimiento

Un ecosistema,muchas piezasen movimiento

Creamos plugins, una CLI, plantillas de proyecto y plugins portables para agentes de IA, para Gatling y ecosistemas afines de pruebas de rendimiento.

Doce repositorios. Un ecosistema.

Plugins para Gatling, plugins para agentes de IA, una CLI, plantillas de proyecto y una metodología spec-driven. Abre cualquier repositorio para ver su uso real y su README.

Plugins de Gatling04

Publicados en Maven Central bajo org.galaxio
R / 01
gatling-kafka-pluginPlugin
Plugin del protocolo Kafka — produce, request-reply, Avro.

// Acerca de

Plugin del protocolo Kafka para Gatling. Flujos produce-only y request-reply con serialización simple, helpers de Avro4s e integración con Schema Registry. La correlación de respuestas se configura a nivel de protocolo y la sigue un consumer compartido.

// Destacado

  • Produce-only mediante kafka("name").topic(...).send(...)
  • Request-reply con correlación matchByValue / matchByMessage
  • Avro4s + Schema Registry, o tu propio Kafka Serde[T]
  • Gatling 3.13.5 · Scala 2.13.16 · Java 17+
scala · build.sbt + simulation
// build.sbt
libraryDependencies += "org.galaxio" %% "gatling-kafka-plugin" % "<version>" % Test

import org.galaxio.gatling.kafka.Predef._
import io.gatling.core.Predef._

val kafkaConf = kafka
  .properties(Map("bootstrap.servers" -> "localhost:9092"))

val scn = scenario("Kafka Producer")
  .exec(
    kafka("send message")
      .topic("test-topic")
      .send[String, String]("key", """{"msg": "hello"}""")
  )

setUp(scn.inject(atOnceUsers(1))).protocols(kafkaConf)

// Acerca de

Ejecuta consultas SQL, inserciones, actualizaciones, operaciones por lotes, SQL en crudo y procedimientos almacenados contra cualquier base de datos compatible con JDBC, con pool de conexiones HikariCP y checks sobre el resultado. Los drivers de cada fabricante no vienen incluidos: añade el de tu base de datos.

// Destacado

  • Sentencias preparadas query / queryP, insertInto, rawSql, batch, call
  • Pool HikariCP con un executor bloqueante dedicado
  • Checks: allResults, simpleCheck, Gatling EL dentro del SQL
  • Gatling 3.13.x · Scala 2.13 · Java 11+
scala · build.sbt + simulation
// build.sbt — plugin + your JDBC driver
libraryDependencies ++= Seq(
  "org.galaxio" %% "gatling-jdbc-plugin" % "<version>" % Test,
  "org.postgresql" % "postgresql" % "42.7.11" % Test,
)

import org.galaxio.gatling.jdbc.Predef._

val dbConf = DB
  .url("jdbc:postgresql://localhost:5432/test")
  .username("test").password("test")
  .maximumPoolSize(10)

scenario("JDBC Query")
  .exec(
    jdbc("find user")
      .queryP("SELECT * FROM users WHERE id = {id}")
      .params("id" -> "#{userId}")
      .check(simpleCheck(_.nonEmpty))
  )

// Acerca de

Plugin del protocolo AMQP compatible con RabbitMQ: patrones publish, request-reply y consume, pool de canales y publisher confirms. Las colas y los exchanges se pueden declarar desde el propio DSL.

// Destacado

  • Publicación con queueExchange / directExchange / topicExchange
  • Request-reply con matchByMessageId o matchByCorrelationId
  • DSL completo de propiedades del mensaje, compatible con Gatling EL
  • Gatling 3.13.x · Scala 2.13 · Java 17+
scala · build.sbt + simulation
// build.sbt
libraryDependencies += "org.galaxio" %% "gatling-amqp-plugin" % "<version>" % Test

import org.galaxio.gatling.amqp.Predef._

val amqpConf = amqp
  .connectionFactory(
    rabbitmq.host("localhost").port(5672)
      .username("guest").password("guest").vhost("/")
  )
  .usePersistentDeliveryMode
  .matchByMessageId

scenario("AMQP Publish")
  .exec(
    amqp("publish").publish
      .queueExchange("test-queue")
      .textMessage("""{"msg": "hello"}""")
      .contentType("application/json")
  )

// Acerca de

Helpers listos para producción sobre el DSL básico de Gatling: configuración estructurada, feeders de datos con Faker, JWT firmados, escenarios sobre Redis, bloques de transacción reutilizables, aserciones de NFR y enmascarado de secretos en los logs.

// Destacado

  • SimulationConfig — baseUrl / intensity / duraciones compartidas, con overrides vía -D
  • Feeders de Faker API, HC Vault, CSV y teléfonos
  • JWT (HS/RS/ES), transacciones con sus propias métricas de latencia
  • Gatling 3.13.x desde 1.12.0 · Scala 2.13 · Java 17+
scala · build.sbt + simulation
// build.sbt
libraryDependencies += "org.galaxio" %% "gatling-picatinny" % "VERSION" % Test

import org.galaxio.gatling.config.SimulationConfig._
import org.galaxio.gatling.feeders.faker.Predef._

// shared config from simulation.conf, overridable with -D
val httpProtocol = http.baseUrl(baseUrl)

val users = GeneratedFeeder(
  "email" -> Faker.internet.email(),
  "phone" -> Faker.phone.mobile(Country.RU, PhoneFormatMode.E164),
)

rampUsersPerSec(0).to(intensity).during(rampDuration)

Plugins de IA01

Nuestra práctica de ingeniería, portable entre agentes

// Acerca de

Los flujos de trabajo de ingeniería de Galaxio empaquetados como plugins portables para agentes. Un plugin se escribe una sola vez: un único árbol skills/ por plugin genera los manifiestos de Cursor, Claude Code y Codex desde un mismo fichero. Incluye galaxio-gatling-pro: pruebas de rendimiento con Gatling JVM al estilo Galaxio.

// Destacado

  • galaxio-gatling-pro — Gatling 3.9.x–3.15.x, Scala/Java/Kotlin
  • sbt, Maven o Gradle · Picatinny · HTTP/JDBC/JMS/Kafka/AMQP
  • Los manifiestos generados nunca se editan a mano — npm run check detecta la desviación
  • Apache-2.0 · Node >= 22 · estándar Agent Skills
shell · install
# Claude Code
$ claude plugin marketplace add galax-io/ai-plugins

# Codex
$ codex plugin marketplace add galax-io/ai-plugins

# then install the plugin by name
$ claude plugin install \
    galaxio-gatling-pro@galaxio-performance-kit

# Cursor: Dashboard -> Plugins -> Add Marketplace
#         -> Import from Repo

Núcleo / Plataforma03

Scaffolding, plantillas y la CLI que los conecta

// Acerca de

Una CLI en Go para flujos de pruebas de rendimiento con Gatling. Genera proyectos de carga listos para compilar a partir de plantillas y crea scripts de Gatling desde Swagger/OpenAPI, grabaciones HAR o colecciones de Postman. Trae un registro por defecto, así que el descubrimiento funciona sin configurar nada.

// Destacado

  • template init / list — generar proyectos y descubrir plantillas
  • generate swagger / har / postman — scripts desde una especificación de API existente
  • doctor — valida la configuración y el acceso al registro · update — autoactualización
  • macOS, Linux, Windows · go install, instalador shell o Docker
shell
# install (macOS / Linux)
$ curl -fsSL https://raw.githubusercontent.com/galax-io/\
    galaxio-cli/main/scripts/install.sh | sh

# discover and scaffold
$ galaxio template list
$ galaxio template init gatling/scala-sbt \
    --set Name=orders-api \
    --set NameWord=ordersApi \
    -d ./perf-tests

# generate a simulation from an OpenAPI spec
$ galaxio generate swagger --from ./petstore.yaml --init

// Acerca de

El pack de plantillas de Gatling para galaxio-cli. Seis plantillas listas para compilar que cubren Scala, Java y Kotlin sobre sbt, Maven y Gradle, con módulos opcionales de los plugins Kafka, JDBC y AMQP que se generan bajo demanda.

// Destacado

  • scala-sbt · scala-gradle · java-maven · java-gradle · kotlin-maven · kotlin-gradle
  • Capas opcionales de Kafka / JDBC / AMQP mediante las entradas *PluginEnabled
  • Cualquier entrada se puede sobrescribir con --set o un fichero YAML --values
  • Pack 0.15.0 · Gatling 3.13.5 · Picatinny 1.17.1
shell
# scaffold, then enable optional plugin modules
$ galaxio template init gatling/scala-sbt \
    --set Name=my-service \
    --set NameWord=myservice \
    --set KafkaPluginEnabled=true \
    --set JdbcPluginEnabled=true \
    -d ./perf-tests

# compile the rendered project
$ cd perf-tests && sbt -batch Gatling/compile

// Acerca de

El registro por defecto del que lee galaxio-cli. Guarda plantillas de proyecto versionadas y sus metadatos, para que la CLI pueda resolver la versión de un pack a una release de GitHub y generar desde ahí. Solo hace falta apuntar la CLI a otro sitio si necesitas una fuente privada.

// Destacado

  • Fuente por defecto — github:galax-io/galaxio-template-registry
  • La versión del pack se resuelve a una etiqueta de release de GitHub
  • Usa el tuyo propio con template configure --registry
shell
# the default registry needs no setup, but you can inspect it
$ galaxio template configure --show
$ galaxio doctor

# point at your own registry
$ galaxio template configure \
    --registry github:my-org/my-registry

# or a local checkout, for one command only
$ galaxio template init mypack/mytemplate \
    --registry local:/path/to/registry

Metodología / Proceso02

Desarrollo spec-driven para trabajo de rendimiento

// Acerca de

Una metodología de desarrollo guiado por especificación para pruebas de rendimiento y carga, construida sobre GitHub spec-kit. Codifica los patrones de la metodología de pruebas de carga como una constitución ratificada, de modo que un proyecto avanza como un pipeline gobernado, trazable y con gates, en lugar de un montón de scripts sueltos.

// Destacado

  • Cuatro fases, dos actores de entrada — bootstrap, order, spec & plan, build & run
  • NFR en prosa -> clarificación -> SLO en EARS -> nfr.yml legible por máquina
  • Se distribuye como un bundle de spec-kit: preset + extension + workflow
  • Estado: investigación y diseño — el diseño vive en docs/
shell · specify
# discover
$ specify preset search perf
$ specify extension search perf

# install
$ specify init --preset perf
$ specify extension add <id>

# run the gated pipeline
$ specify workflow run

// Acerca de

Una plantilla de Copier para arrancar un proyecto nuevo con el proceso de desarrollo de Galaxio ya montado: extensiones y presets de spec-kit, el gate de enlace issue-PR-milestone y un AGENTS.md / CLAUDE.md independiente del stack. El stack da igual: el proceso es el mismo en todos los proyectos.

// Destacado

  • Elige un stack (scala-sbt / jvm-gradle / node / python / go / generic) y los valores por defecto se rellenan solos
  • El hook linkage-guard bloquea el etiquetado de releases si no se cumple issue-PR-milestone
  • copier update integra en tu proyecto los cambios posteriores del proceso con un merge a tres bandas
  • Instala 7 extensiones de spec-kit y un preset
shell · copier
# install Copier once, isolated
$ uv tool install copier    # or: pipx install copier

# scaffold a new project (--trust runs post-gen tasks)
$ copier copy --trust \
    gh:galax-io/spec-kit-galaxio-bootstrap \
    ~/code/my-new-project

# later, pull template/process updates in
$ cd ~/code/my-new-project && copier update --trust

Herramientas / Infraestructura02

El reparto de apoyo

// Acerca de

Añade una tarea de SBT que descarga esquemas Avro y Protobuf desde un Confluent Schema Registry y genera fuentes a partir de ellos, de forma que el código generado sigue alineado con lo que esperan tus productores y consumidores.

// Destacado

  • Descarga y generación de esquemas Avro / Protobuf
  • Mantiene el código generado alineado con el registro
  • Encaja con el soporte de Avro de gatling-kafka-plugin
scala · plugins.sbt
// project/plugins.sbt
addSbtPlugin("org.galaxio" % "sbt-schema-registry-plugin" % "<version>")

// build.sbt — point at your registry
schemaRegistryUrl := "http://localhost:8081"

// download the schemas
$ sbt schemaRegistryDownload

// Acerca de

Imágenes de contenedor usadas por los pipelines de CI/CD de Galaxio y por los entornos de desarrollo local — toolchains fijados para que una ejecución de Gatling se comporte igual en un portátil que en CI.

// Destacado

  • Imágenes para CI/CD y desarrollo local
  • Versiones fijadas de JDK y herramientas de build
  • Reproducibles entre proveedores de CI
shell
# the galaxio CLI is also published as an image
$ docker pull galaxioteam/galaxio:latest

$ docker run --rm \
    -v "$PWD":/work -w /work \
    galaxioteam/galaxio template list
Archivado

Construido con colaboradores, mantenedores y usuarios.

Damos la bienvenida a issues, ideas, mejoras de documentación e integraciones que ayuden a crecer al ecosistema.

§ 03 / Origen

El nombre Galaxio viene de la Galaxia de Asimov.

Galaxia describe un estado futuro en el que todos los planetas, todos los humanos, toda la vida e incluso la materia orgánica inerte se integran en un único organismo.

Nos gustó la idea porque refleja aquello en lo que trabajamos: coordinación, escala y sistemas que funcionan como uno solo. Los plugins, las integraciones y los flujos de trabajo son los hilos que sostienen un toolchain de pruebas de rendimiento: el ecosistema es tan fuerte como las conexiones entre sus partes.

¿Necesitas algo urgente? Podemos adelantarlo.

Las funcionalidades e integraciones críticas pueden priorizarse como trabajo remunerado. Es la vía más rápida cuando la velocidad de entrega importa más que esperar en la cola habitual.

Hablemos