cytonn/sendportal-core
Core package for the SendPortal email marketing platform, providing shared models, services, and utilities that power campaigns, subscribers, and sending workflows in Laravel applications.
This release (v2.0.5) is a performance patch focused on two hot paths: dashboard loading and message queueing. There are no documented breaking changes, so existing integrations should continue to work. Start by confirming your installed version and clearing any cached config/views so the improvements actually take effect.
composer show <vendor>/<package>
php artisan config:clear
php artisan view:clear
php artisan cache:clear
Where to look first:
First use case: open the dashboard with realistic data volume and send a small batch of messages through the queue. Compare timing against your previous version. This gives you a baseline for whether the release improves your specific workload.
Let the package own its performance path. Since v2.0.5 improves dashboard loading and queueing speed internally, avoid layering heavy custom caching or custom queue logic on top before measuring. Add your own optimizations only where profiling shows a remaining bottleneck.
Dashboard access pattern. Put dashboard routes behind your existing auth/authorization middleware. If the dashboard supports polling or auto-refresh, tune the interval in config rather than patching views. For large datasets, prefer the package's pagination/filtering over loading everything and filtering client-side.
Queue configuration. Explicitly set the queue connection and queue name in config so dashboard-triggered sends and application-triggered sends land on the same queue:
// config/<package>.php
'queue' => [
'connection' => env('QUEUE_CONNECTION', 'redis'),
'name' => env('PACKAGE_QUEUE', 'messages'),
],
Run dedicated workers for that queue so message sending is not starved by unrelated jobs:
php artisan queue:work redis --queue=messages --tries=3 --timeout=60
Batch sends. When dispatching many messages, use batching or chunking where the package exposes it. This reduces per-message overhead and pairs well with the faster queueing in this release.
Observability. Instrument both paths so future upgrades are measurable:
Integration tip. If the dashboard reads from the same tables your app writes to, ensure indexes exist on the columns used for filtering, sorting, and status lookups. Performance improvements in the package will not compensate for missing database indexes.
php artisan queue:restart after deploying v2.0.5, or the queueing improvements may not apply to long-running workers.config:clear, route:clear, and view:clear in non-production environments, and rebuild caches deliberately in production.php artisan migrate --pretend) and your test suite. Performance patches occasionally include internal query or job changes that surface in edge cases.How can I help you explore Laravel packages today?