AgentSkillsCN

java-microservice

适用于 crypto-scout-client 的 Java 25 微服务开发模式,包括模块划分、AMQP 发布机制,以及 WebSocket 消费者设计。

SKILL.md
--- frontmatter
name: java-microservice
description: Java 25 microservice development patterns for crypto-scout-client including modules, AMQP publishing, and WebSocket consumers
license: MIT
compatibility: opencode
metadata:
  language: java
  framework: activej
  domain: microservice

What I Do

Provide guidance for developing and maintaining the crypto-scout-client microservice, a Java 25 Maven application that collects crypto market data and publishes to RabbitMQ Streams.

Core Components

Modules

Activej DI modules for separation of concerns:

java
// CoreModule - reactor and executor (virtual threads)
// WebModule - HTTP server, clients, health routes, DNS
// ClientModule - AMQP publisher lifecycle
// BybitSpotModule - Spot WebSocket streams + consumers
// BybitLinearModule - Linear WebSocket streams + consumers
// CmcParserModule - CMC HTTP parser + consumer

AmqpPublisher

Publishes structured events to RabbitMQ Streams:

java
// Routes payloads to configured streams based on provider/source
amqpPublisher.publish(payload);  // Bybit data -> bybit-stream
amqpPublisher.publish(cmcPayload);  // CMC data -> crypto-scout-stream

Bybit Stream Consumers

WebSocket consumers for market data:

java
// AbstractBybitStreamConsumer base class provides common lifecycle
// BybitSpotBtcUsdtConsumer, BybitSpotEthUsdtConsumer
// BybitLinearBtcUsdtConsumer, BybitLinearEthUsdtConsumer

CmcParserConsumer

HTTP-based data collection:

java
// Retrieves Fear & Greed Index (API Pro Latest)
// Retrieves BTC/USD quotes (1D, 1W)
// Publishes to crypto-scout-stream

Health Endpoints

java
// GET /health - returns "ok" when ready, 503 otherwise
// Used for liveness and readiness checks

Configuration

All settings via system properties or environment variables:

PropertyDefaultDescription
server.port8081HTTP server port
amqp.rabbitmq.hostlocalhostRabbitMQ host
amqp.stream.port5552RabbitMQ Streams port
amqp.rabbitmq.usernamecrypto_scout_mqRabbitMQ user
amqp.bybit.streambybit-streamBybit data stream name
amqp.crypto.scout.streamcrypto-scout-streamCMC data stream name
bybit.stream.module.enabledfalseEnable Bybit modules
cmc.parser.module.enabledtrueEnable CMC module

When to Use Me

Use this skill when:

  • Implementing new modules or consumers
  • Understanding the microservice architecture
  • Configuring AMQP publishing and streams
  • Working with Bybit WebSocket or CMC HTTP APIs
  • Adding health checks or observability features