Обновить

Комментарии 4

Зачитался, красиво

Вопросы:

— зачем зависимость от постгри? Какой у вас access pattern?

— зачем go + floxy, когда есть Erlang/OTP?

тут наоборот - решение определяется стеком. если у вас go + pg, то вот такую либу можно использовать

Блин, а ведь здорово! Звезду поставил, схоронил, подписался на обновления. Один вопрос - для чего между шагами передавать сырой жсон, а не мапу?

На хэндлеры ложится обязанность сериализации/десериализации, что не выглядит как то, что должно быть в бизнес-логическом слое.

type PaymentHandler struct{}
func (h *PaymentHandler) Name() string { return "payment" }
func (h *PaymentHandler) Execute(ctx context.Context, stepCtx floxy.StepContext, input json.RawMessage) (json.RawMessage, error) { // <- whyyy?
    // Process payment logic
    return json.Marshal(map[string]any{"status": "paid"})
}

Да, вы правы, не очень удобно. Это я оставил на случай, если разработчик захочет использовать какие-то не стандартные сериализаторы типа easyjson и подобных и для десериализации в структуру. Для более удобной работы есть JSONHandler и TypedHandler в helpers.go, которые используют стандартный encoding/json.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации