Поиск рекомендаций по технологиям для использования в проекте: ORM, создание реактивных интерфейсов и т. Д. - PullRequest
1 голос
/ 22 апреля 2019

Мой друг и я начинаем относительно амбициозный долгосрочный проект, и мы нуждаемся в некоторой помощи, чтобы решить, какие технологии лучше всего подходят для наших нужд.Мы будем очень благодарны за любые советы или мнения о том, какие технологии лучше всего подходят для нашего проекта.Ниже приведена некоторая информация о проекте.

Этот проект начнется как веб-приложение, но в будущем должен быть полностью доступен из приложений для iOS и Android.

На самом высоком уровне, здесьэто то, что будет делать наше приложение / что оно должно уметь обрабатывать с изяществом:

 1. Make and receive many phone calls throughout the day
    1. We will be using Twilio’s APIs for these calls
    2. On average, we anticipate needing to handle ~25-100 concurrent phone calls at all times
        1. We also need to handle intermittent, and much less frequent, bursts of hundreds of concurrent phone calls, possibly even thousands.
    3. The large, large majority of these phone calls will require at least 1, but typically more, database queries. (we intend to use a relational database on the backend)
        1. So, while we aren’t too worried about kicking off a ton of concurrent phone calls, we are very worried about the person on the other end being held up due to these DB connections/queries getting backed up. Data being queried is mission critical, and must be available nearly instantly.
2. Automatically update all relevant pages of the web app’s UI every time a phone call leads to changing or adding a row somewhere in the DB
3. Automatically update all relevant pages of the web app’s UI every time a user makes a change through the web app rather than through the phone.

По сути, у нас есть приложение большого размера, которое будет инициировать и принимать телефонные звонки, используя множество соединений с БД ивыполнение большого количества запросов и т. д., но потребует очень мало ресурсов процессора.Большая часть передаваемых данных потребует очень мало операций над ними перед вводом в БД.

Для некоторых прототипов мы использовали сервер бесплатного уровня от AWS, свободного уровняMySQL DB от AWS, и для внутреннего кода, который будет работать на сервере, мы в настоящее время используем Python.

Мы изучали использование ORM, но мы видели смешанные мнения и прочиталичто они могут потенциально замедлить ход событий, чего мы опять хотим избежать, когда у нас много пользователей, сидящих на телефонных звонках.В будущем мы верим, что захотим выполнить какой-нибудь сырой SQL.Будет ли это проблемой при использовании ORM?Насколько это может усложнить ситуацию?

Мы планируем использовать пул соединений для соединений с базой данных, но это также то, с чем ни у кого из нас нет опыта работы.Мы понимаем, что в python встроены пакеты для поддержки таких пулов, но есть ли какая-то причина, по которой мы должны пытаться реализовать здесь свои собственные?

Если у кого-то есть какие-либо предложения относительно того, подойдут ли эти технологии для нашихнужды, или если у кого-то есть предложение о лучшей технологии, мы были бы очень благодарны.

...