Что лучше использовать для системы Django или FastAPI или Laravel?

Летом начал писать backend для системы, которая должна принимать запросы от клиента, сохранять их в базу данных clickhouse. Я начал всё писать на php8.0 при использовании фреймворка laravel. По началу возникло много сложностей с системой авторизации, но это дела минувшего прошлого.

Часть системы уже написана. Не скажу, что очень много сделано. Средняя скорость ответа на запрос: 300 мс. В инете написано, что это нормально. Однако это тестирование на 1м клиенте. Так что скорее всего при множестве одновременных запросов время ответа увеличится.

Сейчас подобрался к описанию взаимодействия с mqtt. Нужно, чтобы сервер отправлял на mqtt по топику device/device_id команды, а так же их принимал. Как я подозреваю,эта система не очень будет работать на php так как мне нужно будет сделать listner'a, который будет считывать сообщения с топика. 1 дело, если это будет ответ от устройства, что оно приняло команду. Это не должно занимать много времени. А другое дело, если Я должен ожидать выполнение работы устройством. На php нет реализации нескольких потоков, лишь имитация. То есть я не смогу выделить поток, который будет спрашивать у устройства: готово ли это или нет или выделить поток, который просто будет смотреть по топику, проверяя, есть ли там новое сообщение.

Обозначив перед коллегами такой вопрос мне предложили всё переписать на Django. Я сел изучать вопрос. Прочитал про лицензию Django,написано, что бесплатно. Так же наткнулся на FastAPI, пишется, что он весьма быстр (да, это можно понять по названию).

Вычитал, что Django не обладает тоже многопоточностью, однако на нём просто будет удобнее и легче написать многие функции из моего php кода, плюс высокая степень безопасности. По поводу FastAPI вычитал, что у него нет встроенного хорошего модуля безопасности, зато есть многопоточность и автодокументирование.

И вот у меня встал выбор. Продолжать реализовывать на php, начать переписывать на Django или FastAPI. Система у меня должна будет быть закрытая, то есть никто не должен будет смотреть что там внутри.


Ответы (0 шт):