169 похожих чатов

А что он в этом толке предлагает взамен рест? Очереди?

31 ответов

64 просмотра

Нет) видео клевое

Как будто кроме реста ничего нету в этом мире

из заголовка выглядит как CQRS

лично мне импонирует AMQP based RPC 😊

хотя вроде одно другого не исключает https://lostechies.com/jimmybogard/2016/06/01/cqrs-and-rest-the-perfect-match/

В общих чертах его идея такая: 1) вместо rest сделать RPC-подобный протокол, то есть JSON с полями actions и params 2) все команды делятся на read-only и mutable 3) команды на чтение исполняются сразу, а на изменение уходят в кафку. В ответ на изменение приходит айди задачи, которую клиент будет трекать 4) фоновые воркеры разгребают кафку и пишут в задачу результат иили ошибку 5) в результате мы храним историю команд, ее можно переиграть. 6) За счет добавления новых воркеров система масштабируется, можно добавлять долгие задачи, например выгрузку истории, отправку писем, формирование PDF и другое

нет ли тут неудобства для маленьких проектов?

1 прям бальзам на душу, как же бесит традиционное обилие параметров разного типа напиханных куда только можно…

не ясно, как клиенту трекать задачу по пункту 3

в ответ на изменение сущности приходит json с полем job-id = xxxxxxxxxxx

это понятно технология треканья какая? сокеты? повторяющиеся http запросы? всё усложняется, если отвечающая сторона не может отправить ответ спрашивающей напрямую

почему-то не увидел это сообщение. Можно и вебсокеты, но если задан Keep alive, то обычные запросы будут так же работать

Aleksei- Автор вопроса

мы 1. применяли у себя, все запросы только POST в хидере токен, в тело - json со всеми параметрами, все. Например POST get-users, add-users и тд. Ощущения только положительные остались.

А почему только POST? Почему на рид команды не гет?

клиента будет сложней реализовывать для разного способа вызова команд, а плюсов мало учитывая нежелательность кэширования GET, плюсов с GET даже нет

Aleksei- Автор вопроса

мы используем это для межсервисного взаимодействия, так что все клиенты сами микросервисы

ну, в общем, я за такие решения, когда вопрошающий оставляет свой обратный адрес, куда получает ответ по готовности

Ну как раз CQRS. Комаеды кешировать не надо, конечно. А query пусть кешируются.

это неважно когда реализуешь протокол общения, то включать в него выбор между GET/POST по названию метода — избыточное усложнение

1. Читаем список 2. Выполняем команду на изменение списка 3. Перечитываем список как в 1, пусть кэшируется?

Aleksei- Автор вопроса

если я правильно понимаю вопрос, то POST

так тоже можно, если речь о сервисах. А если получатель это клиент, то как он оставит свой урл для нотификации? Только долбиться остается

вот и я ему так ответил, что «так проще»

ну, бывают же клиенты с постоянным подключением к чему-нибудь, на тех же вебсокетах

Aleksei- Автор вопроса

🤦‍♂️ ага, я тепреь понял, а сначала запутался)

можно и с лонг поллингом через прокси 😊

а зачем разные эндпойнты вообще?

Aleksei- Автор вопроса

чтобы было видно что торчит из микросервиса, описание было. Эндпоинты может support команда дернуть

а, ну только если для этого, так-то никто не мешает упаковать всё в одну json-ку

Aleksei- Автор вопроса

в больших проектах "в одну жсонку" это крайность. Везде нужен компромис

Я такое практикую.

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта