Laravel Pennant è un pacchetto di flag di funzionalità leggero progettato per consentire facilmente il lancio incrementale e la gestione delle funzionalità dell'applicazione. Supporta più driver di archiviazione, tra cui un array in memoria, un database e driver personalizzati come Redis [2]. Laravel Horizon, d'altra parte, è uno strumento di dashboard e monitoraggio specifico per le code di Redis di Laravel, fornendo approfondimenti in tempo reale sull'elaborazione delle code e sullo stato del lavoro [1] [4].
Per quanto riguarda l'uso di Lavel Pennant con Laravel Horizon per le caratteristiche in tempo reale, non vi è alcuna integrazione diretta o connessione integrata tra i due pacchetti. Laravel Horizon si concentra sul monitoraggio e la gestione delle code, mentre i stendari gestiscono le funzioni di bandiere e la loro logica di valutazione. Tuttavia, puoi architelare una soluzione che sfrutta entrambi:
- Driver Pennant personalizzato che utilizza Redis: Pennant consente la creazione di driver di flag di funzionalità personalizzati, incluso uno che può utilizzare Redis come negozio di backend. È possibile implementare un driver di flag basato su Redis per Pennant, che può archiviare e aggiornare i flag di funzionalità in Redis. Questo approccio può facilitare gli aggiornamenti in tempo reale e i controlli della flag a bassa latenza [2].
- Monitoraggio dei lavori in coda e Horizon: se l'applicazione aggiorna le funzioni flags in modo asincrono (ad esempio, tramite lavori in coda che modificano le flag in Redis), Laravel Horizon può monitorare tali lavori in tempo reale. Questa configurazione consente di tenere traccia dei processi che modificano i flag di funzionalità ma non fornisce un'interfaccia di gestione dei flag di funzionalità dirette.
- Eventi e metriche: spedizioni di stentini eventi quando le funzionalità vengono controllate o risolte, che è possibile ascoltare e potenzialmente spingere metriche o notifiche attraverso il sistema di eventi di Laravel. Mentre Horizon non visualizza nativamente metriche di flag di funzionalità, è possibile creare dashboard personalizzati o strumenti di monitoraggio che aggregano questi eventi insieme al monitoraggio della coda di Horizon [2].
- Nessun dashboard per flag di funzionalità in Horizon: a partire da ora, non esiste un dashboard Horizon ufficiale o costruito per la comunità per la gestione o la visualizzazione di flag di caratteristiche di LARAVEL. Le discussioni nella comunità indicano interesse per tale strumento, ma non esiste ancora [3].
In sintesi, Laravel Pennant può essere usato insieme a Laravel Horizon in un'applicazione di Laravel, ma servono a scopi diversi. Pennant gestisce le funzioni di bandiere, potenzialmente con un backend di Redis per prestazioni in tempo reale, mentre Horizon monitora le code e i posti di lavoro Redis. Le caratteristiche in tempo reale con Pennant possono essere raggiunte utilizzando Redis come back-end e sfruttando il sistema di eventi di Laravel, ma Horizon stesso non fornisce funzionalità di gestione o visualizzazione dei flag.
Pertanto, mentre è possibile utilizzare sia nella stessa applicazione che persino farli interagire indirettamente tramite Redis e code, Laravel Pennant e Laravel Horizon non sono integrati fuori dalla scatola per le caratteristiche in tempo reale [1] [2] [3] [4].
Citazioni:
[1] https://laravel.com/docs/11.x/Horizon
[2] https://laravel.com/docs/12.x/pennant
[3] https://www.reddit.com/r/laravel/comments/13htk4p/laravel_pennant_management/
[4] https://www.youtube.com/watch?v=r3c_qbvahxa
[5] https://laravel-news.com/feature-flags-with-laravel-pent
[6] https://www.honeybadger.io/blog/a-guide-to-feature-flags-in-laravel/
[7] https://wpwebinfotech.com/blog/laravel-pennant-guide/
[8] https://dev.to/saurabh-dhariwal/how-to-manage-fature-flags-with-laravel-pennant-in-2024-1phb