Size: a a a

Software Design/Architecture/Zen

2021 January 12

КГ

Константин Грачев... in Software Design/Architecture/Zen
Sergey Protko
врядли ты знаешь что такое стэйтлесс/стэйтфул в этом контексте. Похоже на очередной наброс умных слов значений которых ты не понимаешь
Как в воду глядел
источник

АГ

Алексей Гевондян... in Software Design/Architecture/Zen
как оно на самом деле конечно же не расскажете, да?
источник

SP

Sergey Protko in Software Design/Architecture/Zen
Алексей Гевондян
ну стейтфул это когда несколько запросов объединены в группу, и нельзя их выполнить в произвольном порядке или часть из них. а в стейтлесс сервисе 1 запрос -  самостоятельная и независимая операция
нет, стэйтфул это когда клиенту важно с каким сервером оно там общается. Грубо говоря если у тебя есть возможность балансер поставить без всяких там hash и кук и раскидывать раунд робином запросы по разным сервакам - то у тебя стэйтлес.

Если "разные серваки" потом дальше с одной базой общаются и локи делают - это уже не важно в контексте апишек.
источник

DT

Dmitriy Tkachenko in Software Design/Architecture/Zen
Тут ещё надо понимать к чему этот стейтлесс относится. Сервер стейтфул если хранит состояние, тоесть любой сервис с абсолютной точки зрения
источник

SP

Sergey Protko in Software Design/Architecture/Zen
что до "очередности операций" - это не про стэйтфул или стэйтлес - так простой "создай пост поредактируй пост" можно сказать стэйтфул а потом вжух все операции делаем через идемпотентные операции и уже стэйтлесс.. глупо как-то
источник

SP

Sergey Protko in Software Design/Architecture/Zen
а так в любом случае при взаимодействии двух штук у тебя будет temporal coupling
источник

АГ

Алексей Гевондян... in Software Design/Architecture/Zen
если есть сессия - это стейтфул?
источник

SP

Sergey Protko in Software Design/Architecture/Zen
нет если сторадж сессий общий на все серваки
источник

АГ

Алексей Гевондян... in Software Design/Architecture/Zen
т.е. если стейт хранится в общей базе, то не стейтфул. т.е. выходит термины стейтлесс / стейтфул вообще не уместны в нераспределенных системах. так?
источник

SP

Sergey Protko in Software Design/Architecture/Zen
stateful/stateless в контексте сетевого взаимодействия (как Рой Филдинг завещал) это ТОЛЬКО про то важно клиенту  к какому именно серверу он сча подключается или нет.

Пример когда важно - FTP - там "конкретный сервер" и его файлики это стэйт и тебе важно куда ты подключаешься что бы файлик записать.

Пример когда НЕ важно - любая http апишка и не важно есть там бэк с базой или нет - у тебя все реплики бэка будут с одним мастером общаться
источник

HH

Human Human in Software Design/Architecture/Zen
Алексей Гевондян
ну стейтфул это когда несколько запросов объединены в группу, и нельзя их выполнить в произвольном порядке или часть из них. а в стейтлесс сервисе 1 запрос -  самостоятельная и независимая операция
я мб чего не понимаю, но как с таким подхожом можно приложения писать?) Порядок важная вещь. Мои запросы тоже можно выполнять в другом порядке, но просто вернется "ошибка”.
источник

SP

Sergey Protko in Software Design/Architecture/Zen
рассуждать на тему stateful vs stateless вне этого контекста просто глупо. Нет стэйта - нет сайд эффектов - нет пользы.
источник

SP

Sergey Protko in Software Design/Architecture/Zen
проще будет файлик на s3 положить и раздавать клаудфронтом
источник

DT

Dmitriy Tkachenko in Software Design/Architecture/Zen
Sergey Protko
stateful/stateless в контексте сетевого взаимодействия (как Рой Филдинг завещал) это ТОЛЬКО про то важно клиенту  к какому именно серверу он сча подключается или нет.

Пример когда важно - FTP - там "конкретный сервер" и его файлики это стэйт и тебе важно куда ты подключаешься что бы файлик записать.

Пример когда НЕ важно - любая http апишка и не важно есть там бэк с базой или нет - у тебя все реплики бэка будут с одним мастером общаться
если брать с точки  зрения scalability, то тут еще становится обязательным не важно в принципе в каком окружении запущен инстанс, решения не зависят от окружения. Не?
источник

HH

Human Human in Software Design/Architecture/Zen
Я пробовал писать аля REST в поп-культурном понимании. Вышла х-у-е-т-а нечитаемая, потратил в 2 раза больше времени. Профиты не ясны
источник

SP

Sergey Protko in Software Design/Architecture/Zen
Dmitriy Tkachenko
если брать с точки  зрения scalability, то тут еще становится обязательным не важно в принципе в каком окружении запущен инстанс, решения не зависят от окружения. Не?
что такое окружение в этом контексте?
источник

SP

Sergey Protko in Software Design/Architecture/Zen
Human Human
Я пробовал писать аля REST в поп-культурном понимании. Вышла х-у-е-т-а нечитаемая, потратил в 2 раза больше времени. Профиты не ясны
пуп культурные это xml и гипертекст?
источник

SP

Sergey Protko in Software Design/Architecture/Zen
или попытки натянуть гипертекст на json?
источник

SP

Sergey Protko in Software Design/Architecture/Zen
или просто json?
источник

АГ

Алексей Гевондян... in Software Design/Architecture/Zen
Human Human
я мб чего не понимаю, но как с таким подхожом можно приложения писать?) Порядок важная вещь. Мои запросы тоже можно выполнять в другом порядке, но просто вернется "ошибка”.
ну условно, как выполнение некой процедуры императивной, это последовательность неких действий, между ними шарится некое текущее состояние (набор переменных). есть состояние - стейтфул. нет состояния - стейтлесс... так то бд и есть "стейт" системы...
источник