
Aleh
01.11.2017
14:50:35
Больше никаких

Maksim
01.11.2017
14:51:04
Ну т.е. я буду городить всю портянку es ради истории операций? Ради призрачной надежды когда-либо откатить состояние агрегата? Вы шутите?

Aleh
01.11.2017
14:51:19
Какую портянку?

Maksim
01.11.2017
14:52:02
всю реализацию

Google

Maksim
01.11.2017
14:52:21
весь оверхед

Aleh
01.11.2017
14:52:23
Какую реализацию, реализацию хранения ивентов?
Какой оверхед, с чем мы сравниваем?

Maksim
01.11.2017
14:54:11
реализацию хранения эвентов, их применения, генерации представлений на основе оных.
Для чего мне всё это в рамках простой задачи, которая решается с помощью 2-3х таблиц в тёплом ламповом mysql?
Я с пониманием, что es/cqrs нынче модная и хайповая схема, но на кой чёрт её тянуть во все щели? зачем пытаться микроскопом гвозди забивать? (да, он тоже для этого подходит, но это не значит, что он будет хорошим выбором).


Aleh
01.11.2017
14:55:50
реализацию хранения эвентов, их применения, генерации представлений на основе оных.
Для чего мне всё это в рамках простой задачи, которая решается с помощью 2-3х таблиц в тёплом ламповом mysql?
Я с пониманием, что es/cqrs нынче модная и хайповая схема, но на кой чёрт её тянуть во все щели? зачем пытаться микроскопом гвозди забивать? (да, он тоже для этого подходит, но это не значит, что он будет хорошим выбором).
Реализация хранения ивентов проще реализации хранения целого стейта, генерацию вьюх можно не делать, запихайте гетерый в write model
И у вас остаются 2-3 таблицы
Особенно когда идут операции с деньгами, лучше иметь историю и в случае чего посмотреть, где что-то пошло не так, чем смотреть на состояние счета и говорить, ну хз у нас записано 40 баксов на счете)


Maksim
01.11.2017
15:00:09
в случае работы через агрегатора это не нужно от слова совсем
задача клиентского кода - сформировать запрос и средиректить пользователя. Затем получить его назад вместе с флагом "ок/не ок"
всё, что касается денег, систему не касается в принципе.

Aleh
01.11.2017
15:01:58
Так зачем тогда билинг?)

Maksim
01.11.2017
15:02:18
цены редактировать, премиум аккаунты выдавать)

Google

Aleh
01.11.2017
15:02:29
И вообще какие-то таблицы, если все не у вас
Задача решается без таблиц вообще)

Maksim
01.11.2017
15:03:17
почитайте там описание, которое парень скидывал) там задача на 3-4 файлика. А тут накинулись защитники православного cqrs/es
и, да, восстанавливать состояние стейтов за 5 лет работы в агрегаторе платежей мне пришлось ровно 1 раз: когда одмин базу переломал со своими переключениями мастеров. Но если бы он такой номер провернул с базой событий, попу бы всем раздраконили под 0.

Roman
01.11.2017
16:06:04
Почему-то никто не спросил, есть ли у команды, которая будет реализовывать функциональность, опыт построения систем (хотя бы на уровне личных проектов) на cqrs и es :)
Опыта нет, а это, по-моему, железный аргумент против применения той или иной технологии или подхода в продакшене.

Maksim
01.11.2017
16:23:12
С точки зрения идеи там довольно просто всё.
Реализации бывают разной степени замудрённости. И только

Cristal
01.11.2017
17:16:31
Приветствую всех

Sergey
01.11.2017
19:01:28
или по другому, если нам нужно процессить инвойсы, у тебя будут мутабельные инвойсы, статус оплачен или ожидает оплаты например
и на основе оного будет приниматься решение что кому и т.д.
нет?
по факту у нас есть:
- покупка внутреигровой валюты
- проведение транзакций используя внутреигровые валюты
- покупка премиум аккаунтов
правильно понимаю?


Maksim
01.11.2017
19:09:52
Ну опять-таки есть множество разных вариаций. Например, не редки кейсы, когда 1 инвойс (счёт фактуру, если угодно) можно оплачивать с помощью нескольких сервис-провайдеров. Но в нашем случае кол-во логики минимально. Собрали форму, отсабмитили, получили нотификацию и выдали аккаунт. Усё

Sergey
01.11.2017
19:10:46

Maksim
01.11.2017
19:10:58
Очень сильнл
Усложняет логику в миллионы раз

Sergey
01.11.2017
19:11:21
это влияет только на процедуру проведения/верификации платежа, инвойсы ж плевать

Maksim
01.11.2017
19:11:43
не совсем так

Google

Sergey
01.11.2017
19:12:01

Maksim
01.11.2017
19:12:21
скорее: половину через страйп, а половину счёта через биткоины

Sergey
01.11.2017
19:12:39

Maksim
01.11.2017
19:13:39
там начинается свистопляска с суммой транзакций по инвойсу, к их возврату в случае чего (и сторнирование следом). Куча бизнесовых правил под всякую отчётную дрянь. вот тут как раз ес в цвет залетит

Sergey
01.11.2017
19:14:26
окей, а если у нас тупо робокасса (пока что, хз что будет завтра) - ES не взлетает потому что "сложно"?)
оверхэд в чем?

Maksim
01.11.2017
19:14:49
всё же давай от обратного: профит в чём?

Sergey
01.11.2017
19:14:53
или ты про факт отсутствия вменяемых и удобных реализаций готовой инфраструктуры для cqrs/es?
проще логику скейлить

Maksim
01.11.2017
19:15:50
я сам в состоянии написать и более того, уже это сделал.
я не против es/cqrs, я против советов оного варианта человеком, который не особо в курсе специфики работы агрегаторов
и уж тем более я бы не стал пихать эту реализация непонятно для чего, что бы подключить робокассу
отчётность робокассы получается за 2 минуты в личном кабинете

Sergey
01.11.2017
19:17:40

Maksim
01.11.2017
19:19:25
для начала мне нужно написать реализацию cqrs (предположим, что у меня её нет и я на распутье). Это первый и ключевой момент.
второй момент - мне никто так и не смог объяснить, за каким хреном мне в принципе писать эту реализацию, если весь геморрой лежит на стороне агрегатора, а мне надо только сматчить айдишник оплаченного ордера с айдишником платежа

Sergey
01.11.2017
19:19:43

Maksim
01.11.2017
19:20:28
es за слеш ещё добавь.
cqrs как таковой делать не надо

Sergey
01.11.2017
19:20:36
> а мне надо только сматчить айдишник оплаченного ордера с айдишником платежа
предположим что у нас все еще на нашей стороне остались платежи во внутреигровой валюте
если мы возьмем к примеру php, и тамошние штуки типа доктрины - как по мне уже тянет на больше дел (надо разобраться как работает доктрина. учитывать ограничения которые оно накладывает)

Google

Maksim
01.11.2017
19:22:03
платежи во внутреигровой валюте нас в принципе никак не касаются в вопросах биллинга. Это простой апдейт 2 записей в 1 таблице в рамках 1 транзакции. Лог записать, если сильно хочется
транзакция - в контексте субд

Sergey
01.11.2017
19:22:45
никакой истории, и все всегда идет так так что беспокоиться о том что балансы будут внезапно неактуальными мы не будем

Maksim
01.11.2017
19:23:54
лог можешь вести, если сильно поджимает параноя
логирование есть по определению +/- в любом приложении. Делать лишнего не нужно.

Sergey
01.11.2017
19:26:56
а еще можно взять готовый лэджер

Maksim
01.11.2017
19:28:17
Если я не ошибаюсь, ты громче всех тут хайпишь за ноду, тайпскрипт, ангуляр, микросервисы и прочий "важный и нужный" стек

Sergey
01.11.2017
19:28:35

Maksim
01.11.2017
19:28:42
есть те, кто громче?)
но чем всё это хуже втиснуть es/cqrs в любую дырку - вопрос риторический.

Sergey
01.11.2017
19:29:34
человек попросил биллинг - es ложится на биллинг очень хорошо. Потом оказалось что весь процессинг платежей будет делаться готовой штукой. Приходим к тому что ты предложил.
мне не нравятся крайности - и чем нравится es - так это тем что с таким подходом еще можно передумать в плане обработки данных, а то что ты предложил - пути назад уже не будет.

Maksim
01.11.2017
19:30:20
как человек, который спроектировал оба направления движения денег в некогда крупной компании с огромными оборотами: нихрена он не ложится
частично можно использовать для отчётности, как ранее писал, но не более. К самому процессингу - неа

Sergey
01.11.2017
19:31:04
пока я слышу только "сложна", "нет профита"
причем альтернативы ты не приводишь
с чем сравниваешь

Maksim
01.11.2017
19:31:47
знаешь почему?

Google

Maksim
01.11.2017
19:32:28
твоё представление о прохождении платежа очень похоже на проведение банковской транзакции. Прям как по учебнику.
Списали с 1 счёта, зачислили на другой, записали отчётик.
возьми ради интереса схему прохождения платежа у visa/mastercard. Накинь на es/cqrs
а что б совсем хорошор было: схема платежа = снятие наличных по карте visa в банкомате чужого банка. Вот где раздолье

Aleh
01.11.2017
19:35:35

Maksim
01.11.2017
19:36:34

Aleh
01.11.2017
19:36:35
но процесс я сейчас посмотрю детальнее)

Sergey
01.11.2017
19:36:43
у тебя есть действующие протоколы проведения транзакций, нет?

Maksim
01.11.2017
19:37:16
действующие протоколы?

Sergey
01.11.2017
19:43:37
ну не протоколы, короч всякие там CIPS и т.д.

Maksim
01.11.2017
19:44:32
На такой уровень cips/swift шпану не пускают
так что нет, нету. Ни один агрегатор доступа к ним никогда не получит)
особенно российский, где все крупные платёжки работают на грани фола и спасают их только пухлые чемоданчики)

Sergey
01.11.2017
19:50:45
раз уж ты по инфраструктуре ограничения убрал

Maksim
01.11.2017
19:52:13
если брать в рассчёт межбанковское взаимодействие, то там не совсем транзакции в привычном понимании.
если сильно упрощенно, то это больше похоже на обмен векселями

Sergey
01.11.2017
19:54:00
у меня опыт есть только с гейтвеями