Confluent https://www.youtube.com/channel/UCmZz-Gj3caLLzEWBtbYUXaA/videos Kafka Summit 2017: https://www.youtube.com/watch?v=ySf7bDBHRUQ 2025 Otus - Apache Kafka for DWH 0:00 of 1:27:58 https://www.youtube.com/watch?v=xBeW06nm7oQ JavaTechie - Does Kafka Guarantee Message Ordering? 0:00 of 28:27 https://www.youtube.com/watch?v=Jl-nauqEtEo JPoint - Golovko - Spring Kafka - How not to Shoot a Foot 25:00 of 46:18 https://www.youtube.com/watch?v=9r80FRcKGCA ! 10:00 ack=all setting !!! ! 12:00 @Bean DefaultKafkaProducerFactoryCustomizer serializerCustomizer(ObjectMapper objectMapper) { ! var jsonSerializer = new JsonSerializer(objectMapper); ! return producerFactory -> producerFactory.setValueSerializer(jsonSerializer); ! } ! 12:30 listener i-faces: ! MessageListener ! AcknowledgingMessageListener ! ConsumerAwareMessageListener ! AcknowledgingConsumerAwareMessageListener ! 13:30 @Bean KafkaMessageListenerContainer kafkaListenerContainer( ! ConsumerFactory factory, ! MessageListener listener) { ! var containerProperties = new ContainerProperties(MY_TOPIC); ! containerProperties.setMessageListener(listener); ! return new KafkaMessageListenerContainer<>(factory, containerProperties); ! } # it is single-threaded and very agile (gibkiy) ! 16:00 ! props.put(JsonDeserializer.TYPE_MAPPINGS, "some.package.dto.OtpDto:" + OtpDto.class.getCanonicalName()); ! 17:00 - manual dserialization: ! props.put(JsonDeserializer.USE_TYPE_INFO_HEADERS, false); ! props.put(JsonDeserializer.VALUE_DEFAULT_TYPE, OtpDto.class.getCanonicalName()); ! 18:00 ConcurrentMessageListeningContainer kafkaListenerContainer(...) { ! ...; container.setConcurrency(4); // for KafkaMessageListenerContainer ! } ! 19:00 var ... = new ErrorHandlingDeserializer(jsonDeserializer); ! 20:00 var recoverer = new DeadLetterPublishingRecoverer(template); ! var errorHandler = new DefaultErrorHandler(recoverer); ! listenerContainer.setCommonErrorHandler(errorHandler); ! 22:00 it would be good to have distinct DLTs for distinct types of ex-s ! @Bean public CommonErrorHandler commonErrorHandler(KafkaTemplate deserializationDltTemplate, ! KafkaTemplate otpKafkaTemplate) { ! CommonErrorHandler defaultErrorHandler = defaultErrorHandler(otpKafkaTemplate); ! var delegatingErrorHandler = new CommonDelegatingErrorHandler(defaultErrorHandler); ! delegatingErrorHandler.setErrorHandlers(errorHandlingDelegates(deserializationDltTemplate)); ! return delegatingErrorHandler; ! } ! 24:00 ! private CommonErrorHandler defaultErrorHandler(KafkaTemplate otpKafkaTemplate) { ! return new DefaultErrorHandler( ! new DeadLetterPublishingRecoverer(otpKafkaTemplate), ! new FixedBackOff(0, 2)); ! } ! 24:30 -//- errorHandlingDelegates impl -//- JavaGuru - Apache Kafka of p28 https://www.youtube.com/playlist?list=PLt91xr-Pp57Q50WsXz9r-zmxy5ceu_hp_ 2024 Otus - Kafka and ClickHouse of 1:41:20 https://www.youtube.com/watch?v=Jp1SEm4UU48 ! 49:00 - ClickHouse Kafka Connect Sink ! 52:00 - REST Api for Kafka Connectors ! 1:00:00 - Debezium Docker image for pg Spectr - Koreysha - Apache Kafka Typical Erors of 54:46 https://www.youtube.com/watch?v=FGETRVOPdiA https://drive.google.com/file/d/1APmfDCMIDXStkR5uld5LlbdC2N3Lxho6/view ! 34:00 session.timeout.ms, heartbeat.interval.ms, max.poll.interval.ms ByteByteGo - System Design: Why is Kafka so Popular? of 4:19 https://www.youtube.com/watch?v=yIAcHMJzqJc SelskiJavist - Kafka Fundamentals 0:00 of 2:09:05 https://www.youtube.com/watch?v=YluvsLmPU78 ! producer/consumer related at-least-onece, at-most-once, fixing offset, a lot of props transactions, partitions direct manip-n 2023 Otus - Petrelevich - Working with Kafka in Boot apps 20:00 of 54:12 https://www.youtube.com/watch?v=9FikRH8rXas 2022 SpringDeveloper - Long - Spring Tips: Spring Boot & Apache Kafka of 42:58 https://www.youtube.com/watch?v=DJHUNSGh3K0 ! 2:00 - Kafka is not a msg-system, but distributed log with almost linear scalability Slurm - Obkafkilsya 0:00 of 1:06:43 https://www.youtube.com/watch?v=5Sf8nKRQc8Y Slurm - Programming with Kafka 0:00 of 1:23:33 https://www.youtube.com/watch?v=ey2QE_mPVpQ 2021 https://drive.google.com/drive/folders/1GyQkciZbOY6fbGpn6OIp1iZswOWiL8bq Shevlyagin - Apache Kafka Workshop of 1:25:30 https://www.youtube.com/watch?v=W-wr4Fxmjsc https://github.com/vitshevl/kafka-demo Bogdanovskiy - Kafka Fundamentals of 49:22 https://www.youtube.com/watch?v=-AZOi3kP9Js Korolkov - Rabbit 0:00 of 1:09:39 https://www.youtube.com/watch?v=ijR2VXgSQO4 https://github.com/kaa-ghub/spring-cloud-stream-demo 2019 https://habr.com/ru/company/jugru/blog/451268/ https://speakerdeck.com/jugmsk/viktor-gamov-kafka-streams-iq-zachiem-nam-baza-dannykh-nam-baza-nie-nuzhna https://inponomarev.github.io/kstreams-examples/#/ https://www.infoq.com/presentations/kafka-pks 2018 Waehner - Introduction to Apache Kafka as Event-Driven Open Source Streaming Platform https://www.youtube.com/watch?v=OXLABLRNuzI HighLoadChannel - Vybornov - Kafka in HighLoad ru of 37:49 https://www.youtube.com/watch?v=BtmYjTO1EpI ! The only way to provide exactly-once semantics is to atomically save both offsets and data outside of kafka ! 18:00 - manual leaders assign for part-s ! 19:00 - increase replication (paradoxal, but strangely works fine) 2017 Ward - Introduction to Apache Kafka https://www.youtube.com/watch?v=UEg40Te8pnE Stopford - Power of the Log: LSM and Append Only Data Structures https://www.infoq.com/presentations/lsm-append-data-structures Reis - Functional Streams with Kafka https://www.slideshare.net/LuisMiguelReis2/functional-streams-with-kafka-a-comparison-between-akkastreams-and-fs2 https://www.youtube.com/watch?v=fwQMdxYPRIo https://www.infoq.com/presentations/kafka-spring https://www.youtube.com/watch?v=l8V6PkVV1Ec 2016 https://www.slideshare.net/SpringCentral/i-cant-believe-its-not-a-queue-using-kafka-with-spring https://www.slideshare.net/SpringCentral/spring-for-apache-kafka Narkhede https://www.infoq.com/presentations/etl-streams