The Myth of the Magical Messaging Fabric by Jakub Korab https://www.youtube.com/watch?v=Ie3--CSpCGs
a warm-up exercise ‎· discard the universe
"independently for about three years" ‎· discard the universe
@jakekorab ‎· discard the universe
myths, two definitions, usefulness of myths, more etymology ‎· discard the universe
ActiveMQ vs Kafka ‎· discard the universe
broker as an interface, as a post office ‎· discard the universe
wire formats: OpenWire, AMQP, STOMP, MQTT, XMPP,.. ‎· discard the universe
queues/topics ‎· discard the universe
reliability vs performance ‎· discard the universe
send-write-"confirm"-ack cycle, the meaning of "wrote" http://j.mp/postgres-journal-reliability ‎· discard the universe
in ActiveMQ, disk is the main speed limiter ‎· discard the universe
IOPS, capacity, latency,.. ‎· discard the universe
two+ consumers, node failure, redispatch ‎· discard the universe
at-least-once-delivery is the best you can possibly do (indeed) ‎· discard the universe
slave is supposed to stop listening. (it doesn't afaik) ‎· discard the universe
broker is not a great fit for a container (or VM) ‎· discard the universe
transactions are a nice way to increase throughtput ‎· discard the universe
do not use one shared broker. so long for the centralized queues ‎· discard the universe
(how do we trace it? wire tapping?) ‎· discard the universe
kafka as a way to _not_ set up separate brokers ‎· discard the universe
100K 1/sec; many shiny promises ‎· discard the universe
consumer group as a logical consumer ‎· discard the universe
no round-robin, the newest consumer steals all the messages, you can multiplex by hand ‎· discard the universe
partitioning; separate journals for separate consumers, screwed-up ordering. ‎· discard the universe
the standard pain of producer being responsible for sharding: it is the producer who decides on partitioning. ‎· discard the universe
send returns a Future, so... it's up to you to deal with the client lib failures ‎· discard the universe
consumption is non-transactional,.. but you can rewind, manually. ‎· discard the universe
a plane designed for survival ‎· discard the universe
needs a lot of disk; huge cleanup windows, very expensive disk-wise. ‎· discard the universe
"kafka doesn't actually _lose_ messages; you just may happen not to consume them" ‎· discard the universe
[ ] grab that slide desk ‎· discard the universe
"I've just saved you a whole bunch of conference sessions" (on SEDA) ‎· discard the universe
^ лол :) ‎· ממעמקים
^^! ‎· BSOD bluez
cool! a link to the slide deck would be appreciated :) ‎· 9000
Only got the blog so far, http://www.jakubkorab.net — but I'll ask him ‎· discard the universe
ух. прям не знаю, как комментировать — осмысленно не получится, но почему то мне эта лекция не нравится. единроги, бля, опять же. вроде вся информация доступна и в текстовом виде... я вообще предпочитаю пользоваться brokerless MPS, больше контроля над синхронизацией и кэшированием. там конечно свои проблемы, но 500k я получаю между микросервисами на питоне. короче, я не фанат persistant messages. нет стэйта (особенно такого над которым у тебя нет нормального контроля), нет проблемы. UPD: вот, сформулировал: все эти persistant брокеры во время дизайна абстрагируют domain knowledge, выбрасывая информацию которая позволяет все сделать элегантнее, точнее они персистентны не на том уровне абстракции. мы в итоге используем ibverbs/RDMA, несколько миллионов 4k сообщений в секунду, персистентность обеспечивается в отдельном слое, асинхронно, redundancy за счет дублирования сообщений и пересылки. причем, несколько уровней redundancy с разными гарантиями и производительностью, что возможно только по той причине, что мы не потеряли информацию сериализуя в сообщения MPS, точнее коммуникация происходит в том слое, в котором вся информация есть. nanomsg, кстати отличный, я с ним игрался но для своего проекта zeromq был удобнее, к нему больше оберток есть. ‎· snowflake herder
Вообще, мне нравится эта игра с brokerless MPS, преимущество которое я получаю это возможность двигать боттлнеки програмно. я могу контролировать скорость producers, просто их блокируя, увеличивать и уменьшать количество consumers, давать временную персистентность, потом в авральном порядке разгребая очередь, на лету перестраивать топологию, и кучу всего еще, не закладываясь на ограничения брокера. В итоге, все эти операции достаточно просты на уровне кода, все описывается набором эвристик похожим на правила. А от brokered MQ меня интуитивно корежит, по настоящему сложность никуда не исчезает, просто контроль над ней переходит в руки операционной / файловой системы, а я им вообще не доверяю, у них 0 domain knowledge. ‎· snowflake herder