Skip to content

Release v1.0.0 - Phoenix

Choose a tag to compare

@gruelasjr gruelasjr released this 30 Nov 21:17
· 40 commits to main since this release

๐ŸŽ‰ Release v1.0.0 - "Phoenix"

First Stable Release

This is the inaugural stable release of Bird Flock, a production-ready multi-channel messaging bus for Laravel applications.

Release Date: November 30, 2025
Codename: Phoenix
Version: 1.0.0


๐Ÿš€ What is Bird Flock?

Bird Flock is a comprehensive Laravel package that orchestrates reliable outbound messaging across SMS, WhatsApp, and Email channels. It provides enterprise-grade features including idempotency, circuit breakers, dead-letter queues, and automatic retry handling.

Key Highlights

โœ… Multi-Channel Support: SMS (Twilio, Vonage), WhatsApp (Twilio), Email (SendGrid, Mailgun)
โœ… Production-Ready: Circuit breakers, DLQ, exponential backoff, comprehensive error handling
โœ… Developer-Friendly: Simple API, extensive documentation, CLI commands for testing
โœ… Observable: Structured logging, metrics collection, health check endpoints
โœ… Secure: Webhook signature validation, PII masking, HTTPS enforcement
โœ… Well-Tested: 75-85% unit test coverage with PHPUnit 10.x


๐Ÿ“ฆ Installation

composer require equidna/bird-flock
php artisan vendor:publish --tag=bird-flock-config
php artisan migrate

๐ŸŽฏ Core Features

Messaging Capabilities

  • Idempotency: Prevent duplicate sends with unique keys
  • Batch Dispatch: Send up to thousands of messages efficiently
  • Scheduled Delivery: Schedule messages for future delivery
  • Multi-Provider: Seamlessly switch between Twilio, SendGrid, Vonage, Mailgun

Reliability Features

  • Circuit Breakers: Automatic provider failure detection and fail-fast
  • Dead-Letter Queue: Capture failed messages for manual replay
  • Exponential Backoff: Intelligent retry with jitter (1sโ€“60s)
  • Webhook Processing: Automatic status updates from provider callbacks

Developer Tools

  • 6 Artisan commands for testing and management
  • 2 health check endpoints
  • 8 webhook endpoints with rate limiting
  • Comprehensive event system for extensibility

Observability

  • PII-masked structured logging
  • Metrics collection interface
  • Circuit breaker status monitoring
  • Dead-letter queue statistics

๐Ÿ“ Documentation

This release includes comprehensive documentation (9 detailed guides):


๐Ÿ”ง What's Included

Files Added in This Release

  • โœจ CHANGELOG.md - Authoritative changelog (MUST be respected by all AI agents)
  • โœจ BREAKING_CHANGES.md - Breaking changes documentation and migration guides
  • โœจ RELEASE_NOTES.md - This file

Version Updates

  • โœจ composer.json - Added "version": "1.0.0"

Recent Bug Fixes (Included)

  • ๐Ÿ› Fixed DispatchMessageJob delay calculation (milliseconds โ†’ seconds conversion)
  • ๐Ÿ’… Complete PHPDoc standardization across 48+ files
  • ๐Ÿ”’ Enabled webhook signature validation by default
  • ๐Ÿ”’ Replaced Cache::forever() with TTL-based caching

๐ŸŽจ Code Quality Improvements

PHPDoc Standardization

  • โœ… File-level DocBlocks added to all 48+ PHP files
  • โœ… Aligned all PHPDoc tags per PHPDocStyle.instructions.md
  • โœ… Added missing @throws documentation
  • โœ… Fixed constructor DocBlocks for promoted properties
  • โœ… PHPStan errors reduced from 26 โ†’ 13

Code Style

  • โœ… Consistent trailing commas in multi-line constructs
  • โœ… Anonymous class spacing normalization
  • โœ… Empty constructor body formatting fixes

๐Ÿ” Security Enhancements

  • โœ… Webhook signature validation enabled by default for all providers
  • โœ… PII masking in all log statements (phone numbers, email addresses)
  • โœ… Circuit breaker cache TTL (24 hours) to prevent cache bloat
  • โœ… Rate limiting on webhook endpoints (60 requests/min per IP)

๐Ÿ“‹ System Requirements

  • PHP: 8.3 or higher
  • Laravel: 11.x
  • Database: MySQL 5.7+, PostgreSQL 11+, or SQLite 3.26+
  • Cache: Any Laravel-supported driver (Redis recommended)
  • Queue: Any Laravel queue driver (Redis recommended)

๐Ÿšฆ Testing

Unit Test Coverage

  • โœ… Core dispatch logic and idempotency
  • โœ… Circuit breaker behavior (including concurrency tests)
  • โœ… Job processing and retry logic
  • โœ… All provider sender implementations
  • โœ… Webhook processing and signature validation
  • โœ… Support utilities (backoff, normalization, validation)

Test Framework: PHPUnit 10.x
Coverage: ~75-85%
Test Speed: < 100ms per test

Run tests:

./vendor/bin/phpunit

๐Ÿ“ฆ Dependencies

Production Dependencies

  • Laravel Framework 11.x (Illuminate 10.xโ€“12.x supported)
  • Symfony UID 7.x
  • Guzzle HTTP 7.x
  • Twilio SDK 6.x
  • SendGrid 7.x
  • Vonage Client 4.2+
  • Mailgun PHP 4.3+

Development Dependencies

  • PHPUnit 10.x
  • PHPStan 1.10+
  • PHP_CodeSniffer 4.x

๐Ÿ”ฎ Future Roadmap

See Open Questions & Assumptions for planned features:

  • Multi-tenancy support
  • Multi-provider routing and failover
  • Message cancellation for scheduled sends
  • Rate limiting per recipient
  • Idempotency key expiration policies
  • Template management system
  • GDPR/PII compliance helpers

๐Ÿ“„ License

MIT License - See LICENSE file


๐Ÿ‘ค Author

Gabriel Ruelas
Email: gruelas@gruelas.com
Organization: Equidna


๐Ÿ™ Thank You

Thank you for using Bird Flock! We're excited to see what you build with it.

For issues, questions, or contributions:


๐ŸŽฏ Next Steps

  1. โญ Star this repository
  2. ๐Ÿ“– Read the Deployment Instructions
  3. ๐Ÿš€ Deploy to production
  4. ๐Ÿ“Š Set up monitoring using the Monitoring Guide
  5. ๐Ÿ› Report issues or request features on GitHub

Happy Messaging! ๐Ÿš€