yevhenlisovenko / nano-service
nano-service
Installs: 4 082
Dependents: 0
Suggesters: 0
Security: 0
Stars: 3
Watchers: 1
Forks: 0
Open Issues: 1
pkg:composer/yevhenlisovenko/nano-service
Requires
- php: ^8.1
- ext-curl: *
- league/statsd: ^2.0
- monolog/monolog: ^3.0
- myclabs/php-enum: ^1.8
- php-amqplib/php-amqplib: ^3.7.3
- psr/log: ^3.0
- ramsey/uuid: ^3 || ^4
- spatie/crypto: ^2.0
Requires (Dev)
- phpunit/phpunit: ^9.6
This package is auto-updated.
Last update: 2026-02-07 04:45:41 UTC
README
Event-driven microservices package for PHP using RabbitMQ.
Features
- Publish and consume messages through RabbitMQ
- Event-driven architecture with message queues
- Comprehensive StatsD metrics for observability (v6.0+)
- Connection pooling and health monitoring
- Message signing and verification
Installation
composer require yevhenlisovenko/nano-service
Quick Start
Publisher
use AlexFN\NanoService\NanoPublisher; use AlexFN\NanoService\NanoServiceMessage; $publisher = new NanoPublisher(); $message = new NanoServiceMessage(); $message->setPayload(['user_id' => 123, 'action' => 'created']); $publisher->setMessage($message)->publish('user.created');
Consumer
use AlexFN\NanoService\NanoConsumer; $consumer = new NanoConsumer(); $consumer ->events('user.created', 'user.updated') ->tries(3) ->consume(function ($message) { echo "Processing: " . $message->getEventName() . "\n"; });
Configuration
RabbitMQ (Required)
export AMQP_HOST="rabbitmq.internal" export AMQP_PORT="5672" export AMQP_USER="user" export AMQP_PASS="password" export AMQP_VHOST="/" export AMQP_PROJECT="myproject" export AMQP_MICROSERVICE_NAME="myservice"
StatsD Metrics (Optional)
export STATSD_ENABLED="true" export STATSD_HOST="10.192.0.15" export STATSD_PORT="8125" export STATSD_NAMESPACE="myservice" export STATSD_SAMPLE_OK="0.1"
Metrics (v6.0+)
Automatic metrics collection for:
- Publisher: rate, latency, errors, payload sizes
- Consumer: processing rate, retries, DLX events
- Connection health: status, errors, lifecycle
No code changes required - metrics are collected automatically when enabled.
Documentation
| Document | Description |
|---|---|
| docs/METRICS.md | Complete metrics reference, helper classes |
| docs/CONFIGURATION.md | Configuration options and examples |
| docs/DEPLOYMENT.md | Kubernetes deployment guide |
| docs/TROUBLESHOOTING.md | Common issues and solutions |
| docs/CHANGELOG.md | Version history |
Development
| Document | Description |
|---|---|
| CLAUDE.md | AI/LLM development guidelines |
| docs/development/CODE_REVIEW.md | Code review checklist |
| docs/development/BUGFIXES.md | Known issues and fixes |
Migration Notice
Logger Functionality Removed (2026-01-19)
Logger classes migrated to reminder-platform/shared-logger:
AlexFN\NanoService\NanoLogger→ReminderPlatform\SharedLogger\NanoLogger
License
MIT License