Контекст
Младший полнофункциональный разработчик, я перевожу систему управления посещаемостью Google Apps Script на гибридную архитектуру:
Фронтенд: хостинг Firebase (интерфейс часов HTML/CSS/JS)
Бэкенд: Laravel 10 + PostgreSQL (локальный сервер для информационной панели/отчетов)
Текущая архитектура:
Сотрудники регистрируют вход и выход через веб-интерфейс → Вызывает скрипт Google Apps → Записывает в Google Таблицы.
На панели администратора отображаются данные из тех же Google Таблиц.
Целевая архитектура:
Сотрудники регистрируются через приложение Firebase → Вызывают Laravel API → Записывают в PostgreSQL.
Панель администратора (Laravel Blade) отображает данные из PostgreSQL.
Проблема
Мне нужно решить, как обрабатывать связь между интерфейсом Firebase и сервером Laravel для действий по приходу и уходу. Вариант А: прямой вызов API (текущий план)
///javascript
// Firebase writes to Realtime DB
firebase.database().ref('clock_actions').push({ id, action, timestamp })
// Laravel listens via webhook or polling
Вопросы
Безопасность: Достаточно ли предоставления общедоступной конечной точки API Laravel с аутентификацией по ключу API? Или мне следует использовать OAuth/JWT?
Надежность сети: Если локальный сервер временно недоступен, вариант А немедленно откажет. Обеспечит ли вариант Б (Firebase в качестве посредника) большую устойчивость?
Ограничение скорости: При ~200 сотрудниках, работающих в час пик (8–9 утра), какой подход лучше обрабатывает одновременные запросы?
Среда
Laravel 10, PHP 8.2
PostgreSQL 15
Обратный прокси-сервер Nginx
Хостинг Firebase (в настоящее время нет аутентификации Firebase)
Достаточен ли вариант A для этого масштаба, или мне следует использовать другой язык, надежность/простота разработки?
Контекст Младший полнофункциональный разработчик, я перевожу систему управления посещаемостью Google Apps Script на гибридную архитектуру: [list] [*]Фронтенд: хостинг Firebase (интерфейс часов HTML/CSS/JS) [*]Бэкенд: Laravel 10 + PostgreSQL (локальный сервер для информационной панели/отчетов) [/list] [b]Текущая архитектура:[/b] [list] [*]Сотрудники регистрируют вход и выход через веб-интерфейс → Вызывает скрипт Google Apps → Записывает в Google Таблицы. [*]На панели администратора отображаются данные из тех же Google Таблиц. [/list] [b]Целевая архитектура:[/b] [list] [*]Сотрудники регистрируются через приложение Firebase → Вызывают Laravel API → Записывают в PostgreSQL. [*]Панель администратора (Laravel Blade) отображает данные из PostgreSQL. [/list] Проблема Мне нужно решить, как обрабатывать связь между интерфейсом Firebase и сервером Laravel для действий по приходу и уходу. [b]Вариант А: прямой вызов API (текущий план)[/b] [code]///javascript // Firebase clock.js fetch('https://api.mycompany.com/api/public/clock', { method: 'POST', headers: { 'X-API-Key': CONFIG.API_KEY, 'Content-Type': 'application/json' }, body: JSON.stringify({ id, action, lat, long }) }) [/code] [b]Вариант Б: использовать базу данных Firebase Realtime в качестве очереди[/b] [code]///javascript // Firebase writes to Realtime DB firebase.database().ref('clock_actions').push({ id, action, timestamp })
// Laravel listens via webhook or polling [/code] Вопросы [list] [*][b]Безопасность:[/b] Достаточно ли предоставления общедоступной конечной точки API Laravel с аутентификацией по ключу API? Или мне следует использовать OAuth/JWT?
[*][b]Надежность сети:[/b] Если локальный сервер временно недоступен, вариант А немедленно откажет. Обеспечит ли вариант Б (Firebase в качестве посредника) большую устойчивость?
[*][b]Ограничение скорости:[/b] При ~200 сотрудниках, работающих в час пик (8–9 утра), какой подход лучше обрабатывает одновременные запросы?
[/list] Среда [list] [*]Laravel 10, PHP 8.2 [*]PostgreSQL 15 [*]Обратный прокси-сервер Nginx [*]Хостинг Firebase (в настоящее время нет аутентификации Firebase) [/list] [b]Достаточен ли вариант A для этого масштаба, или мне следует использовать другой язык, надежность/простота разработки?[/b]