На какие именно домены разделить и класть ли апи в разные домен или в один или разделять по путям - в целом мало разницы.
<?xml version="1.0" encoding="UTF-8"?>
<!-- https://phpunit.readthedocs.io/en/latest/configuration.html -->
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/6.5/phpunit.xsd"
backupGlobals="false"
colors="true"
bootstrap="config/bootstrap.php"
>
<php>
<ini name="error_reporting" value="-1" />
<server name="APP_ENV" value="test" force="true" />
<server name="SHELL_VERBOSITY" value="-1" />
<server name="SYMFONY_PHPUNIT_REMOVE" value="" />
<server name="SYMFONY_PHPUNIT_VERSION" value="7.5" />
</php>
<testsuites>
<testsuite name="functional">
<directory>tests/Functional</directory>
</testsuite>
<testsuite name="unit">
<directory>tests/Unit</directory>
</testsuite>
</testsuites>
<filter>
<whitelist>
<directory>src</directory>
</whitelist>
</filter>
<listeners>
<listener class="Symfony\Bridge\PhpUnit\SymfonyTestsListener" />
</listeners>
</phpunit>
сколько у вас человек на проекте?Пока 2-е
Есть ли функционал который вы бы хотели масштабировать отдельно?Да, есть. Пока что в одном месте, но затем хотелось бы отделить на разные сервисы. Так как они логически отделены.
Нужно понимать потоки данных, сколько запросов и как они распределены, какая нагрузка и еще много вещейНагрузка пока не большая. До 50 000 посещений в месяц.
Выделение кода в отдельное приложение (отдельный процесс) делаем
или по организационным причинам: разделение кода для упрощения понимания или разделение кода между разными людьми/командами или требования безопасности/юридические требования.
или это явно разные модели обработки (например АПИ для пользовательских запросов и фоновая агрегация, в этом случае у них разный хост-процесс: веб-сервер и фоновый сервис)
или по причинам нехватки ресурсов.
Разделяя код в разные процессы теряется возможность очень быстро общаться через общую память.на первом этапе можно разделение сделать папками, а не отдельными приложениями. Как думаете на этот счёт? А уже если нужно разделить на приложения и так далее. Опять же разделение такое, что в принципе они друг с другом не особо и сильно взаимодействуют.
3 кейс.
Вы делаете несколько сложных сервисов и решаете распаралелить разработку на несколько команд. Одна команда делает "Кинопоиск", другая "Афишу". Все они обращаются к серверу авторизации из кейса 2 и бекендам из кейса 1.
Отличный ответ! Могли бы Вы ещё дополнить ответ, как и в каком виде хранить данные? На вопрос подписалось 10 человек. Имеет актуальность.
Все советуют Redis. Я так понимаю в таком виде и стоит хранить? Или использовать в MYSQL?
Если взять базу данных MYSQL, то как хранить три ваших типа? Какая архитектура таблиц? Например, для вашего типа ALL Registered Users можно создать дополнительные поля в таблице users: counter_friends, counter_comments, counter_reviews, etc... А можно создать дополнительную таблицу user_counters и добавить их там.
Возьмем второй примитивный пример - посты в блоге. У которых есть счётчики: количество комментариев, к. отзывов, к. подписчиков и так далее. Как быть в этом случае?
В вашем типе Public какую структуру иметь счетчиков? Это отдельная база счетчиков? Или это отдельная таблица?)
Если не сложно - можете дополнить свой ответ или ответить в комментариях? Очень волнующая тема. Ваш ответ внёс некие понимания и в целом он хороший!
Благодарю!