Я думаю, что с точки зрения проектирования архитектуры было бы лучше, если бы расчеты выполнялись либо на стороне сервера, либо на стороне клиента, но не одновременно. Для удобства обслуживания рассмотрим принцип DRY .
Так что в вашем случае рассмотрите необходимость расчетов как локально, так и на стороне сервера. Почему это должно быть на любой из этих сторон? Если сервер выполняет вычисления, а затем сохраняет результат, вы можете использовать принципы фоновой синхронизации, чтобы задержать отправку данных и рассчитать и сохранить результат при необходимости.
Когда клиенту немедленно требуется результат расчета, рассмотрите возможность выполнения расчетов только локально и отправьте результат на сервер с фоновой синхронизацией, когда соединение снова станет доступным.
Если вам абсолютно необходимы вычисления как на клиенте, так и на сервере, рассмотрите архитектуру, в которой модуль, выполняющий вычисления, может использоваться как локально, так и на стороне сервера. Это возможно, когда и сервер, и клиент используют JavaScript, то есть NodeJS. Затем вы можете импортировать этот модуль на сервер и загрузить + кешировать модуль на стороне клиента.