конкретной структуры проекта нет вообще ни в каком языке.
конкретная структура может быть только при наличии соглашений, например, в конкретном фреймворке или собственном представлении o прекрасном.
да и ту можно (иногда и нужно) менять.
тут зависит от потребностей и времени обработки.
- если быстренько получить результат и вернуть назад - сискол через exec/system/etc или микросервисы
- если колбасить долго - очереди.