Apache Kafka и реактивные микросервисы на.net Core. Денис

Size: px
Start display at page:

Download "Apache Kafka и реактивные микросервисы на.net Core. Денис"

Transcription

1 Apache Kafka и реактивные микросервисы на.net Core Денис 1

2 Обо мне 2

3 Код и презентация 3

4 План 4

5 5

6 Терминология 6

7 Терминология 7

8 Откуда берутся микросервисы? 8

9 Откуда берутся микросервисы? Advertising Management System в 9

10 Откуда берутся микросервисы? Frontend App High-level API Storage API S3 Storage 10

11 Откуда берутся микросервисы? Frontend App High-level API Storage API S3 Storage 11

12 Challenges -Синхронное/асинхронное взаимодействие 12

13 Challenges -Синхронное/асинхронное взаимодействие -Гарантированная доставка данных с минимальными задержками 13

14 Challenges -Синхронное/асинхронное взаимодействие -Гарантированная доставка данных с минимальными задержками -Распределенные изменения и согласованность 14

15 Challenges -Синхронное/асинхронное взаимодействие -Гарантированная доставка данных с минимальными задержками -Распределенные изменения и согласованность 15

16 Распределенные изменения -Блокирующие -Неблокирующие (отложенные) 16

17 Распределенные изменения High-level API Storage API S3 Storage 17

18 Распределенные изменения High-level API Storage API S3 Storage 18

19 Распределенные изменения High-level API Storage API S3 Storage 19

20 Распределенные изменения High-level API Storage API S3 Storage 20

21 Распределенные изменения High-level API Storage API S3 Storage 21

22 Распределенные изменения High-level API Storage API S3 Storage 22

23 Фоновые процессы Frontend App REST API / Storage Background workers / 23

24 24

25 Topics and partitions Kafka: The Definitive Guide by Neha Narkhede, Gwen Shapira, and Todd Palino (O Reilly). 25

26 Producers and consumers Kafka: The Definitive Guide by Neha Narkhede, Gwen Shapira, and Todd Palino (O Reilly). 26

27 Producers Kafka: The Definitive Guide by Neha Narkhede, Gwen Shapira, and Todd Palino (O Reilly). 27

28 Producers Kafka: The Definitive Guide by Neha Narkhede, Gwen Shapira, and Todd Palino (O Reilly). 28

29 Producers Kafka: The Definitive Guide by Neha Narkhede, Gwen Shapira, and Todd Palino (O Reilly). 29

30 Producers Kafka: The Definitive Guide by Neha Narkhede, Gwen Shapira, and Todd Palino (O Reilly). 30

31 Producers Kafka: The Definitive Guide by Neha Narkhede, Gwen Shapira, and Todd Palino (O Reilly). 31

32 Producers Kafka: The Definitive Guide by Neha Narkhede, Gwen Shapira, and Todd Palino (O Reilly). 32

33 Consumers and consumer groups Kafka: The Definitive Guide by Neha Narkhede, Gwen Shapira, and Todd Palino (O Reilly). 33

34 Consumers and consumer groups Kafka: The Definitive Guide by Neha Narkhede, Gwen Shapira, and Todd Palino (O Reilly). 34

35 Consumers and consumer groups Kafka: The Definitive Guide by Neha Narkhede, Gwen Shapira, and Todd Palino (O Reilly). 35

36 Consumers and consumer groups Kafka: The Definitive Guide by Neha Narkhede, Gwen Shapira, and Todd Palino (O Reilly). 36

37 Consumers and consumer groups 2 Kafka: The Definitive Guide by Neha Narkhede, Gwen Shapira, and Todd Palino (O Reilly). 37

38 Offsets and commits Kafka: The Definitive Guide by Neha Narkhede, Gwen Shapira, and Todd Palino (O Reilly). 38

39 Kafka.NET Client -Обертка над C-библиотекой librdkafka -Реализовано подмножество API (open source) -Использует managed и unmanaged память и потоки -xplat,.net Core 39

40 Kafka.NET Producer 40

41 Kafka.NET Producer var config = new Dictionary<string, object> "bootstrap.servers", brokerendpoints }, "api.version.request", true }, "default.topic.config", new Dictionary<string, object> "message.timeout.ms", 5000 }, "request.required.acks", -1 } } } }; 41

42 Kafka.NET Producer var config = new Dictionary<string, object> "bootstrap.servers", brokerendpoints }, "api.version.request", true }, "default.topic.config", new Dictionary<string, object> "message.timeout.ms", 5000 }, "request.required.acks", -1 } } } }; var producer = new Producer<Null, string>( config, new NullSerializer(), new StringSerializer(Encoding.UTF8)); 42

43 Kafka.NET Producer var config = new Dictionary<string, object> "bootstrap.servers", brokerendpoints }, "api.version.request", true }, "default.topic.config", new Dictionary<string, object> "message.timeout.ms", 5000 }, "request.required.acks", -1 } } } }; var producer = new Producer<Null, string>( config, new NullSerializer(), new StringSerializer(Encoding.UTF8)); 43

44 Kafka.NET Producer var config = new Dictionary<string, object> "bootstrap.servers", brokerendpoints }, "api.version.request", true }, "default.topic.config", new Dictionary<string, object> "message.timeout.ms", 5000 }, "request.required.acks", -1 } } } }; var producer = new Producer<Null, string>( config, new NullSerializer(), new StringSerializer(Encoding.UTF8)); 44

45 Kafka.NET Producer var config = new Dictionary<string, object> "bootstrap.servers", brokerendpoints }, "api.version.request", true }, "default.topic.config", new Dictionary<string, object> "message.timeout.ms", 5000 }, "request.required.acks", -1 } } } }; var producer = new Producer<Null, string>( config, new NullSerializer(), new StringSerializer(Encoding.UTF8)); var message = await producer.produceasync(topic, null, value, partition); 45

46 Kafka.NET Producer var config = new Dictionary<string, object> "bootstrap.servers", brokerendpoints }, "api.version.request", true }, "default.topic.config", new Dictionary<string, object> "message.timeout.ms", 5000 }, "request.required.acks", -1 } } } }; var producer = new Producer<Null, string>( config, new NullSerializer(), new StringSerializer(Encoding.UTF8)); var message = await producer.produceasync(topic, null, value, partition); 46

47 Kafka.NET Producer var config = new Dictionary<string, object> "bootstrap.servers", brokerendpoints }, "api.version.request", true }, "default.topic.config", new Dictionary<string, object> "message.timeout.ms", 5000 }, "request.required.acks", -1 } } } }; var producer = new Producer<Null, string>( config, new NullSerializer(), new StringSerializer(Encoding.UTF8)); var message = await producer.produceasync(topic, null, value, partition); 47

48 Kafka.NET Consumer 48

49 Kafka.NET Consumer var config = new Dictionary<string, object> "bootstrap.servers", brokerendpoints }, "api.version.request", true }, "group.id",!string.isnullorempty(groupid)? groupid : Guid.NewGuid().ToString() }, "enable.auto.commit", false }, "default.topic.config", new Dictionary<string, object> "auto.offset.reset", "beginning" } } } }; 49

50 Kafka.NET Consumer var config = new Dictionary<string, object> "bootstrap.servers", brokerendpoints }, "api.version.request", true }, "group.id",!string.isnullorempty(groupid)? groupid : Guid.NewGuid().ToString() }, "enable.auto.commit", false }, "default.topic.config", new Dictionary<string, object> "auto.offset.reset", "beginning" } } } }; 50

51 Kafka.NET Consumer var config = new Dictionary<string, object> "bootstrap.servers", brokerendpoints }, "api.version.request", true }, "group.id",!string.isnullorempty(groupid)? groupid : Guid.NewGuid().ToString() }, "enable.auto.commit", false }, "default.topic.config", new Dictionary<string, object> "auto.offset.reset", "beginning" } } } }; 51

52 Kafka.NET Consumer var config = new Dictionary<string, object> "bootstrap.servers", brokerendpoints }, "api.version.request", true }, "group.id",!string.isnullorempty(groupid)? groupid : Guid.NewGuid().ToString() }, "enable.auto.commit", false }, "default.topic.config", new Dictionary<string, object> "auto.offset.reset", "beginning" } } } }; 52

53 Kafka.NET Consumer var config = new Dictionary<string, object> "bootstrap.servers", brokerendpoints }, "api.version.request", true }, "group.id",!string.isnullorempty(groupid)? groupid : Guid.NewGuid().ToString() }, "enable.auto.commit", false }, "default.topic.config", new Dictionary<string, object> "auto.offset.reset", "beginning" } } } }; var consumer = new Consumer<Null, string>( config, new NullDeserializer(), new StringDeserializer(Encoding.UTF8)); 53

54 Batched Kafka Consumer Wrapper 54

55 var consumer = new Consumer<Null, string>( config, new NullDeserializer(), new StringDeserializer(Encoding.UTF8)); 55

56 var consumer = new Consumer<Null, string>( config, new NullDeserializer(), new StringDeserializer(Encoding.UTF8)); var messages = new List<Message<Null, string>>(); var iseof = false; 56

57 var consumer = new Consumer<Null, string>( config, new NullDeserializer(), new StringDeserializer(Encoding.UTF8)); var messages = new List<Message<Null, string>>(); var iseof = false; void OnMessage(object sender, Message<Null, string> message) => messages.add(message); void OnEof(object sender, TopicPartitionOffset offset) => iseof = true; 57

58 var consumer = new Consumer<Null, string>( config, new NullDeserializer(), new StringDeserializer(Encoding.UTF8)); var messages = new List<Message<Null, string>>(); var iseof = false; void OnMessage(object sender, Message<Null, string> message) => messages.add(message); void OnEof(object sender, TopicPartitionOffset offset) => iseof = true; consumer.onmessage += OnMessage; consumer.onpartitioneof += OnEof; consumer.subscribe(topics); 58

59 var consumer = new Consumer<Null, string>( config, new NullDeserializer(), new StringDeserializer(Encoding.UTF8)); var messages = new List<Message<Null, string>>(); var iseof = false; void OnMessage(object sender, Message<Null, string> message) => messages.add(message); void OnEof(object sender, TopicPartitionOffset offset) => iseof = true; consumer.onmessage += OnMessage; consumer.onpartitioneof += OnEof; consumer.subscribe(topics); while (messages.count < batchsize &&!iseof &&!cancellationtoken.iscancellationrequested) consumer.poll(timespan.frommilliseconds(100)); } 59

60 var consumer = new Consumer<Null, string>( config, new NullDeserializer(), new StringDeserializer(Encoding.UTF8)); var messages = new List<Message<Null, string>>(); var iseof = false; void OnMessage(object sender, Message<Null, string> message) => messages.add(message); void OnEof(object sender, TopicPartitionOffset offset) => iseof = true; consumer.onmessage += OnMessage; consumer.onpartitioneof += OnEof; consumer.subscribe(topics); while (messages.count < batchsize &&!iseof &&!cancellationtoken.iscancellationrequested) consumer.poll(timespan.frommilliseconds(100)); } consumer.unsubscribe(topics); 60

61 var consumerwrapper = new ConsumerWrapper(brokerEndpoints, groupid); 61

62 var consumerwrapper = new ConsumerWrapper(brokerEndpoints, groupid); 62

63 var consumerwrapper = new ConsumerWrapper(brokerEndpoints, groupid); while (!cancellationtoken.iscancellationrequested) var messages = consumerwrapper.consume( topics, batchsize, cancellationtoken); } 63

64 var consumerwrapper = new ConsumerWrapper(brokerEndpoints, groupid); while (!cancellationtoken.iscancellationrequested) var messages = consumerwrapper.consume( topics, batchsize, cancellationtoken); } 64

65 var consumerwrapper = new ConsumerWrapper(brokerEndpoints, groupid); while (!cancellationtoken.iscancellationrequested) var messages = consumerwrapper.consume( topics, batchsize, cancellationtoken); foreach (var message in messages) Console.WriteLine( + $"message.offset}: 'message.value}'"); } } 65

66 var consumerwrapper = new ConsumerWrapper(brokerEndpoints, groupid); while (!cancellationtoken.iscancellationrequested) var messages = consumerwrapper.consume( topics, batchsize, cancellationtoken); foreach (var message in messages) Console.WriteLine( + $"message.offset}: 'message.value}'"); } } await consumerwrapper.commitasync(message); 66

67 Kafka + Docker +.NET Core 67

68 More challenges -Легко написать неправильно 68

69 More challenges -Легко написать неправильно -Частые перебалансировки consumer group 69

70 More challenges -Легко написать неправильно -Частые перебалансировки consumer group -Управление распределенными consumer-ами 70

71 More challenges -Легко написать неправильно -Частые перебалансировки consumer group -Управление распределенными consumer-ами -Задержки, синхронизация, утилизация ресурсов 71

72 72

73 Pull-модель public interface IEnumerable IEnumerator GetEnumerator(); } public interface IEnumerator bool MoveNext(); object Current get; } } void Reset(); 73

74 Push-модель public interface IObservable<out T> IDisposable Subscribe(IObserver<T> observer); } public interface IObserver<in T> void OnCompleted(); void OnError(Exception error); } void OnNext(T value); 74

75 Rx Kafka Consumer Wrapper 75

76 void OnMessage(object sender, Message<Null, string> message) => messages.add(message); void OnEof(object sender, TopicPartitionOffset offset) => iseof = true; consumer.onmessage += OnMessage; consumer.onpartitioneof += OnEof; consumer.subscribe(topics); 76

77 IEnumerable<string> topics; var observable = Observable.FromEventPattern<Message<Null, string>>( x => consumer.onmessage += x; consumer.subscribe(topics); }, x => consumer.unsubscribe(); consumer.onmessage -= x; }).Select(x => x.eventargs); 77

78 IEnumerable<string> topics; var observable = Observable.FromEventPattern<Message<Null, string>>( x => consumer.onmessage += x; consumer.subscribe(topics); }, x => consumer.unsubscribe(); consumer.onmessage -= x; }).Select(x => x.eventargs); 78

79 IEnumerable<string> topics; var observable = Observable.FromEventPattern<Message<Null, string>>( x => consumer.onmessage += x; consumer.subscribe(topics); }, x => consumer.unsubscribe(); consumer.onmessage -= x; }).Select(x => x.eventargs); 79

80 IEnumerable<string> topics; var observable = Observable.FromEventPattern<Message<Null, string>>( x => consumer.onmessage += x; consumer.subscribe(topics); }, x => consumer.unsubscribe(); consumer.onmessage -= x; }).Select(x => x.eventargs); 80

81 IEnumerable<string> topics; var observable = Observable.FromEventPattern<Message<Null, string>>( ); Task.Factory.StartNew( () => while (!cancellationtoken.iscancellationrequested) consumer.poll(timespan.frommilliseconds(100)); } }, cancellationtoken, TaskCreationOptions.LongRunning, TaskScheduler.Default); 81

82 var observable = consumerwrapper.consume(token); 82

83 var observable = consumerwrapper.consume(token); 83

84 var observable = consumerwrapper.consume(token); var subscription = observable.buffer(batchsize).subscribe( messages => foreach (var message in messages) Console.WriteLine(message.Value); consumerwrapper.commitasync(message).getawaiter().getresult(); } }); 84

85 var observable = consumerwrapper.consume(token); var subscription = observable.buffer(batchsize).subscribe( messages => foreach (var message in messages) Console.WriteLine(message.Value); consumerwrapper.commitasync(message).getawaiter().getresult(); } }); 85

86 var observable = consumerwrapper.consume(token); var subscription = observable.buffer(batchsize).subscribe( messages => foreach (var message in messages) Console.WriteLine(message.Value); consumerwrapper.commitasync(message).getawaiter().getresult(); } }); 86

87 var observable = consumerwrapper.consume(token); var subscription = observable.buffer(batchsize).subscribe( ); var taskcompletionsource = new TaskCompletionSource<object>(); cancellationtoken.register( () => subscription.dispose(); taskcompletionsource.setresult(null); }); 87

88 var observable = consumerwrapper.consume(token); var subscription = observable.buffer(batchsize).subscribe( ); var taskcompletionsource = new TaskCompletionSource<object>(); cancellationtoken.register( () => subscription.dispose(); taskcompletionsource.setresult(null); }); 88

89 var observable = consumerwrapper.consume(token); var subscription = observable.buffer(batchsize).subscribe( ); var taskcompletionsource = new TaskCompletionSource<object>(); cancellationtoken.register( () => subscription.dispose(); taskcompletionsource.setresult(null); }); 89

90 var observable = consumerwrapper.consume(token); var subscription = observable.buffer(batchsize).subscribe( ); var taskcompletionsource = new TaskCompletionSource<object>(); cancellationtoken.register( () => subscription.dispose(); taskcompletionsource.setresult(null); }); await taskcompletionsource.task; 90

91 Kafka + Rx 91

92 92

93 Распределенные изменения High-level API Storage API S3 Storage 93

94 Распределенные изменения High-level API Storage API S3 Storage 94

95 Распределенные изменения High-level API Storage API S3 Storage 95

96 Распределенные изменения High-level API Storage API S3 Storage 96

97 Распределенные изменения High-level API Storage API S3 Storage 97

98 Распределенные изменения Неизменяемость (immutability) 98

99 Распределенные изменения Неизменяемость (immutability) -Версионирование данных 99

100 Распределенные изменения Неизменяемость (immutability) -Версионирование данных -Данные + события 100

101 Распределенные изменения Неизменяемость (immutability) -Версионирование данных -Данные + события -Данные = события (event sourcing) 101

102 High-level API Storage API S3 Storage 102

103 High-level API Storage API S3 Storage 103

104 High-level API Storage API S3 Storage 104

105 Неблокирующие изменения 105

106 Неблокирующие изменения High-level API Storage API S3 Storage 106

107 Неблокирующие изменения High-level API Storage API Queue Storage 107

108 Неблокирующие изменения Worker / Queue Storage 108

109 Неблокирующие изменения Worker / Queue Storage 109

110 Неблокирующие изменения Worker / Queue Storage 110

111 Краткие итоги 111

112 Краткие итоги -Микросервисы не появляются сами по себе 112

113 Краткие итоги -Микросервисы не появляются сами по себе -Управление изменениями в микросервисном приложении значительно усложняется 113

114 Краткие итоги -Микросервисы не появляются сами по себе -Управление изменениями в микросервисном приложении значительно усложняется -Apache Kafka упрощает асинхронные взаимодействия 114

115 Краткие итоги -Микросервисы не появляются сами по себе -Управление изменениями в микросервисном приложении значительно усложняется -Apache Kafka упрощает асинхронные взаимодействия -Реактивный подход убирает границы между компонентами приложения 115

116 Полезные ссылки

117 Спасибо! Вопросы? Денис 117

Rx: Curing your Asynchronous Programming Blues Bart J.F. De Smet

Rx: Curing your Asynchronous Programming Blues Bart J.F. De Smet Rx: Curing your Asynchronous Programming Blues Bart J.F. De Smet Microso' Corpora,on bartde@microso'.com Why Should I Care? GPS RSS feeds Stock,ckers Social media Server management Mission Statement Too

More information

Консультант в Miles. Работаю с F# и Демо презентации: https://github.com/object/ AkkaStreamsDemo

Консультант в Miles. Работаю с F# и Демо презентации: https://github.com/object/ AkkaStreamsDemo Консультант в Miles Работаю с F# и C# @ooobject vagif.abilov@mail.com Демо презентации: https://github.com/object/ AkkaStreamsDemo У вас уже может быть опыт работы с...для понимания этого доклада он необязателен!

More information

Erik Meijer Wes Dyer Jeffrey van Gogh Bart de Smet Matthew Podwysocki

Erik Meijer Wes Dyer Jeffrey van Gogh Bart de Smet Matthew Podwysocki Volta Quo Vadis? Erik Meijer Wes Dyer Jeffrey van Gogh Bart de Smet Matthew Podwysocki What? Fundamentally change the way you think about coordinating and orchestrating asynchronous and event-based programming

More information

pykafka Release dev.2

pykafka Release dev.2 pykafka Release 2.8.0-dev.2 Apr 19, 2018 Contents 1 Getting Started 3 2 Using the librdkafka extension 5 3 Operational Tools 7 4 PyKafka or kafka-python? 9 5 Contributing 11 6 Support 13 i ii pykafka,

More information

LINQ, Take Two Realizing the LINQ to Everything Dream. Bart J.F. De Smet Software Development Engineer

LINQ, Take Two Realizing the LINQ to Everything Dream. Bart J.F. De Smet Software Development Engineer LINQ, Take Two Realizing the LINQ to Everything Dream Bart J.F. De Smet Software Development Engineer bartde@microsoft.com A Historical Perspective 5 years ago Little recent innovation Censored Where s

More information

C # 7, 8, and beyond: language features from design to release to IDE support. Kevin

C # 7, 8, and beyond: language features from design to release to IDE support. Kevin C # 7, 8, and beyond: language features from design to release to IDE support Kevin Pilch kevinpi@microsoft.com @Pilchie Stack Overflow - most popular technologies http://stackoverflow.com/insights/survey/2017#most-popular-technologies

More information

A day in the life of a log message Kyle Liberti, Josef

A day in the life of a log message Kyle Liberti, Josef A day in the life of a log message Kyle Liberti, Josef Karasek @Pepe_CZ Order is vital for scale Abstractions make systems manageable Problems of Distributed Systems Reliability Data throughput Latency

More information

Confluent Developer Training: Building Kafka Solutions B7/801/A

Confluent Developer Training: Building Kafka Solutions B7/801/A Confluent Developer Training: Building Kafka Solutions B7/801/A Kafka Fundamentals Chapter 3 Course Contents 01: Introduction 02: The Motivation for Apache Kafka >>> 03: Kafka Fundamentals 04: Kafka s

More information

Pusher Documentation. Release. Top Free Games

Pusher Documentation. Release. Top Free Games Pusher Documentation Release Top Free Games January 18, 2017 Contents 1 Overview 3 1.1 Features.................................................. 3 1.2 The Stack.................................................

More information

Concurrency: An Overview

Concurrency: An Overview CHAPTER 1 Concurrency: An Overview Concurrency is a key aspect of beautiful software. For decades, concurrency was possible but difficult. Concurrent software was difficult to write, difficult to debug,

More information

rkafka rkafka is a package created to expose functionalities provided by Apache Kafka in the R layer. Version 1.1

rkafka rkafka is a package created to expose functionalities provided by Apache Kafka in the R layer. Version 1.1 rkafka rkafka is a package created to expose functionalities provided by Apache Kafka in the R layer. Version 1.1 Wednesday 28 th June, 2017 rkafka Shruti Gupta Wednesday 28 th June, 2017 Contents 1 Introduction

More information

Alert Filtering System Prototyping for ZTF and LSST

Alert Filtering System Prototyping for ZTF and LSST Alert Filtering System Prototyping for ZTF and LSST Maria Patterson IVOA northern interop, Shanghai 2017 May 1 / 19 pipelines High Level Goal detections distribution alerts alerts alerts alerts all alerts

More information

Rx is a library for composing asynchronous and event-based programs using observable collections.

Rx is a library for composing asynchronous and event-based programs using observable collections. bartde@microsoft.com Slides license: Creative Commons Attribution Non-Commercial Share Alike See http://creativecommons.org/licenses/by-nc-sa/3.0/legalcode Too hard today (f g)(x) = f(g(x)) Rx is a library

More information

kafka-python Documentation

kafka-python Documentation kafka-python Documentation Release 0.9.4 David Arthur Apr 21, 2017 Contents 1 Status 3 2 License 5 3 Contents 7 3.1 Install................................................... 7 3.2 Tests...................................................

More information

A Distributed System Case Study: Apache Kafka. High throughput messaging for diverse consumers

A Distributed System Case Study: Apache Kafka. High throughput messaging for diverse consumers A Distributed System Case Study: Apache Kafka High throughput messaging for diverse consumers As always, this is not a tutorial Some of the concepts may no longer be part of the current system or implemented

More information

The Definitive Guide To How Computers Do Math Featuring The Virtual Diy Calculator

The Definitive Guide To How Computers Do Math Featuring The Virtual Diy Calculator The Definitive Guide To How Computers Do Math Featuring The Virtual Diy Calculator We have made it easy for you to find a PDF Ebooks without any digging. And by having access to our ebooks online or by

More information

Intra-cluster Replication for Apache Kafka. Jun Rao

Intra-cluster Replication for Apache Kafka. Jun Rao Intra-cluster Replication for Apache Kafka Jun Rao About myself Engineer at LinkedIn since 2010 Worked on Apache Kafka and Cassandra Database researcher at IBM Outline Overview of Kafka Kafka architecture

More information

Kafka: The Definitive Guide

Kafka: The Definitive Guide Kafka: The Definitive Guide Neha Narkhede, Gwen Shapira, and Todd Palino Boston Kafka: The Definitive Guide by Neha Narkhede, Gwen Shapira, and Todd Palino Copyright 2016 Neha Narkhede, Gwen Shapira, Todd

More information

Kafka. The Definitive Guide. Neha Narkhede, Gwen Shapira & Todd Palino REAL-TIME DATA AND STREAM PROCESSING AT SCALE

Kafka. The Definitive Guide. Neha Narkhede, Gwen Shapira & Todd Palino REAL-TIME DATA AND STREAM PROCESSING AT SCALE Compliments of Kafka The Definitive Guide REAL-TIME DATA AND STREAM PROCESSING AT SCALE Neha Narkhede, Gwen Shapira & Todd Palino Get Started With Apache Kafka Today CONFLUENT OPEN SOURCE A 100% open

More information

Evolution of an Apache Spark Architecture for Processing Game Data

Evolution of an Apache Spark Architecture for Processing Game Data Evolution of an Apache Spark Architecture for Processing Game Data Nick Afshartous WB Analytics Platform May 17 th 2017 May 17 th, 2017 About Me nafshartous@wbgames.com WB Analytics Core Platform Lead

More information

Internet of Metaproteomics. Roman Zoun, , ATDB

Internet of Metaproteomics. Roman Zoun, , ATDB Internet of Metaproteomics Roman Zoun, 11.05.2018, ATDB What is Internet of Things? IoT https://image.slidesharecdn.com/iot1-180124175346/95/lecture-1-introduction-to-iot-4-638.jpg?cb=1516819344 https://semielectronics.com/wp-content/uploads/2017/08/sensors-for-iot.jpg

More information

Fast Data apps with Alpakka Kafka connector. Sean Glover,

Fast Data apps with Alpakka Kafka connector. Sean Glover, Fast Data apps with Alpakka Kafka connector Sean Glover, Lightbend @seg1o Who am I? I m Sean Glover Senior Software Engineer at Lightbend Member of the Fast Data Platform team Organizer of Scala Toronto

More information

KIP-266: Fix consumer indefinite blocking behavior

KIP-266: Fix consumer indefinite blocking behavior KIP-266: Fix consumer indefinite blocking behavior Status Motivation Public Interfaces Consumer#position Consumer#committed and Consumer#commitSync Consumer#poll Consumer#partitionsFor Consumer#listTopics

More information

Data Acquisition. The reference Big Data stack

Data Acquisition. The reference Big Data stack Università degli Studi di Roma Tor Vergata Dipartimento di Ingegneria Civile e Ingegneria Informatica Data Acquisition Corso di Sistemi e Architetture per Big Data A.A. 2016/17 Valeria Cardellini The reference

More information

Fluentd + MongoDB + Spark = Awesome Sauce

Fluentd + MongoDB + Spark = Awesome Sauce Fluentd + MongoDB + Spark = Awesome Sauce Nishant Sahay, Sr. Architect, Wipro Limited Bhavani Ananth, Tech Manager, Wipro Limited Your company logo here Wipro Open Source Practice: Vision & Mission Vision

More information

Introduction to Apache Kafka

Introduction to Apache Kafka Introduction to Apache Kafka Chris Curtin Head of Technical Research Atlanta Java Users Group March 2013 About Me 20+ years in technology Head of Technical Research at Silverpop (12 + years at Silverpop)

More information

KIP-95: Incremental Batch Processing for Kafka Streams

KIP-95: Incremental Batch Processing for Kafka Streams KIP-95: Incremental Batch Processing for Kafka Streams Status Motivation Public Interfaces Proposed Changes Determining stopping point: End-Of-Log The startup algorithm would be as follows: Restart in

More information

Fast Data apps with Alpakka Kafka connector and Akka Streams. Sean Glover,

Fast Data apps with Alpakka Kafka connector and Akka Streams. Sean Glover, Fast Data apps with Alpakka Kafka connector and Akka Streams Sean Glover, Lightbend @seg1o Who am I? I m Sean Glover Principal Engineer at Lightbend Member of the Fast Data Platform team Organizer of Scala

More information

C# COMO VOCÊ (TALVEZ) NUNCA VIU

C# COMO VOCÊ (TALVEZ) NUNCA VIU C# COMO VOCÊ (TALVEZ) NUNCA VIU CÓDIGO LIMPO, EXPRESSIVO, SÓLIDO & FUNCIONAL. ELEMAR JR falecom@elemarjr.com elemarjr@ravendb.net elemarjr.com @ayende ARE YOU A PROFESSIONAL? Abstrato Concreto EXPRESSIVIDADE

More information

Introduction to Kafka (and why you care)

Introduction to Kafka (and why you care) Introduction to Kafka (and why you care) Richard Nikula VP, Product Development and Support Nastel Technologies, Inc. 2 Introduction Richard Nikula VP of Product Development and Support Involved in MQ

More information

Marathon Documentation

Marathon Documentation Marathon Documentation Release 3.0.0 Top Free Games Feb 07, 2018 Contents 1 Overview 3 1.1 Features.................................................. 3 1.2 Architecture...............................................

More information

MEAP Edition Manning Early Access Program Rx.NET in Action Version 11

MEAP Edition Manning Early Access Program Rx.NET in Action Version 11 MEAP Edition Manning Early Access Program Rx.NET in Action Version 11 Copyright 2016 Manning Publications For more information on this and other Manning titles go to www.manning.com Manning Publications

More information

StorageTapper. Real-time MySQL Change Data Uber. Ovais Tariq, Shriniket Kale & Yevgeniy Firsov. October 03, 2017

StorageTapper. Real-time MySQL Change Data Uber. Ovais Tariq, Shriniket Kale & Yevgeniy Firsov. October 03, 2017 StorageTapper Real-time MySQL Change Data Streaming @ Uber Ovais Tariq, Shriniket Kale & Yevgeniy Firsov October 03, 2017 Overview What we will cover today Background & Motivation High Level Features System

More information

What property of a C# array indicates its allocated size? What keyword in the base class allows a method to be polymorphic?

What property of a C# array indicates its allocated size? What keyword in the base class allows a method to be polymorphic? What property of a C# array indicates its allocated size? a. Size b. Count c. Length What property of a C# array indicates its allocated size? a. Size b. Count c. Length What keyword in the base class

More information

Beginning Editing Edit Operations and Inspector. Charlie Macleod

Beginning Editing Edit Operations and Inspector. Charlie Macleod Beginning Editing Edit Operations and Inspector Charlie Macleod Beginning Editing - Overview Edit Operation - Basic Workflows and Usage Inspector - Alternative to Edit Operation - Geared toward modifying

More information

The Event. The secret to building large scale distributed cloud apps.

The Event. The secret to building large scale distributed cloud apps. The Event The secret to building large scale distributed cloud apps. Yves Goeleven Solution Architect - Particular Software Shipping software since 2001 Azure MVP since 2010 Co-founder & board member AZUG

More information

Data Acquisition. The reference Big Data stack

Data Acquisition. The reference Big Data stack Università degli Studi di Roma Tor Vergata Dipartimento di Ingegneria Civile e Ingegneria Informatica Data Acquisition Corso di Sistemi e Architetture per Big Data A.A. 2017/18 Valeria Cardellini The reference

More information

pykafka Release 2.3.1

pykafka Release 2.3.1 pykafka Release 2.3.1 September 11, 2016 Contents 1 Getting Started 3 2 Using the librdkafka extension 5 3 Operational Tools 7 4 What happened to Samsa? 9 5 PyKafka or kafka-python? 11 6 Support 13 Python

More information

streams streaming data transformation á la carte

streams streaming data transformation á la carte streams streaming data transformation á la carte Deputy CTO #protip Think of the concept of streams as ephemeral, time-dependent, sequences of elements possibly unbounded in length in essence: transformation

More information

In dropwizard metric framework, it use separate thread to scan the metrics map and do flush at a fixed interval.

In dropwizard metric framework, it use separate thread to scan the metrics map and do flush at a fixed interval. Runtime statistics As a monitoring system, user may ask question like: Is the system healthy? what's the heat point of the system? How many events is processed per second? Is the data well partitioned

More information

Problems.Net. Обра. Анатолий Крыжановский

Problems.Net. Обра. Анатолий Крыжановский Problems.Net Обра Анатолий Крыжановский ООП 2 class Bar void Foo(object a) Console.WriteLine("object"); void Foo(object a, object b) Console.WriteLine("object, object"); void Foo(params object[] args)

More information

Streaming Log Analytics with Kafka

Streaming Log Analytics with Kafka Streaming Log Analytics with Kafka Kresten Krab Thorup, Humio CTO Log Everything, Answer Anything, In Real-Time. Why this talk? Humio is a Log Analytics system Designed to run on-prem High volume, real

More information

Enhancing cloud applications by using messaging services IBM Corporation

Enhancing cloud applications by using messaging services IBM Corporation Enhancing cloud applications by using messaging services After you complete this section, you should understand: Messaging use cases, benefits, and available APIs in the Message Hub service Message Hub

More information

Lecture 21 11/27/2017 Next Lecture: Quiz review & project meetings Streaming & Apache Kafka

Lecture 21 11/27/2017 Next Lecture: Quiz review & project meetings Streaming & Apache Kafka Lecture 21 11/27/2017 Next Lecture: Quiz review & project meetings Streaming & Apache Kafka What problem does Kafka solve? Provides a way to deliver updates about changes in state from one service to another

More information

pykafka Release dev1

pykafka Release dev1 pykafka Release 2.6.1.dev1 Aug 19, 2017 Contents 1 Getting Started 3 2 Using the librdkafka extension 5 3 Operational Tools 7 4 What happened to Samsa? 9 5 PyKafka or kafka-python? 11 6 Contributing 13

More information

Introducing Kafka Connect. Large-scale streaming data import/export for

Introducing Kafka Connect. Large-scale streaming data import/export for Introducing Kafka Connect Large-scale streaming data import/export for Kafka @tlberglund My Secret Agenda 1. Review of Kafka 2. Why do we need Connect? 3. How does Connect work? 4. Tell me about these

More information

Chapter 6: Using Arrays

Chapter 6: Using Arrays Chapter 6: Using Arrays Declaring an Array and Assigning Values to Array Array Elements A list of data items that all have the same data type and the same name Each item is distinguished from the others

More information

Praise for Concurrency in C# Cookbook

Praise for Concurrency in C# Cookbook Praise for Concurrency in C# Cookbook The next big thing in computing is making massive parallelism accessible to mere mortals. Developers have more power available to us than ever before, but expressing

More information

Exam C IBM Cloud Platform Application Development v2 Sample Test

Exam C IBM Cloud Platform Application Development v2 Sample Test Exam C5050 384 IBM Cloud Platform Application Development v2 Sample Test 1. What is an advantage of using managed services in IBM Bluemix Platform as a Service (PaaS)? A. The Bluemix cloud determines the

More information

Mobile SDK for Xamarin - SSC 1.1 Rev: September 13, Mobile SDK for Xamarin - SSC 1.1

Mobile SDK for Xamarin - SSC 1.1 Rev: September 13, Mobile SDK for Xamarin - SSC 1.1 Mobile SDK for Xamarin - SSC 1.1 Rev: September 13, 2018 Mobile SDK for Xamarin - SSC 1.1 All the official Sitecore documentation. Page 1 of 40 Accessing Sitecore content The Sitecore Mobile SDK serves

More information

Computation at the Speed of Monads July Computation at the Speed of Monads. Brigham Young University - Idaho.

Computation at the Speed of Monads July Computation at the Speed of Monads. Brigham Young University - Idaho. Computation at the Speed of Monads Samuel McAravey Brigham Young University - Idaho mcaravey@live.com 7/14/2014 Abstract Parallelism has been an issue as of late because of the rise of multi-core computers.

More information

pykafka Release 2.0.4

pykafka Release 2.0.4 pykafka Release 2.0.4 Aug 17, 2017 Contents 1 Getting Started 3 2 Operational Tools 5 3 What happened to Samsa? 7 4 PyKafka or kafka-python? 9 5 Support 11 Python Module Index 51 i ii PyKafka is a cluster-aware

More information

LoadDataToDataGrid();

LoadDataToDataGrid(); Архангельский Алексей /// Загрузка данных в таблицу на форме в зависимости от того, что выбрано в комбобоксе private void LoadDataToDataGrid() button_add.isenabled = false; datagrid_booksorreaders.itemssource

More information

Applied object oriented programming. 4 th lecture

Applied object oriented programming. 4 th lecture Applied object oriented programming 4 th lecture Today Constructors in depth Class inheritance Interfaces Standard.NET interfaces IComparable IComparer IEquatable IEnumerable ICloneable (and cloning) Kahoot

More information

Event Streams using Apache Kafka

Event Streams using Apache Kafka Event Streams using Apache Kafka And how it relates to IBM MQ Andrew Schofield Chief Architect, Event Streams STSM, IBM Messaging, Hursley Park Event-driven systems deliver more engaging customer experiences

More information

OpenWhisk on Mesos. Tyson Norris/Dragos Dascalita Haut, Adobe Systems, Inc.

OpenWhisk on Mesos. Tyson Norris/Dragos Dascalita Haut, Adobe Systems, Inc. OpenWhisk on Mesos Tyson Norris/Dragos Dascalita Haut, Adobe Systems, Inc. OPENWHISK ON MESOS SERVERLESS BACKGROUND OPERATIONAL EVOLUTION SERVERLESS BACKGROUND CUSTOMER FOCUSED DEVELOPMENT SERVERLESS BACKGROUND

More information

Specification. HR-plus 8 Service Bus Integration - Overview

Specification. HR-plus 8 Service Bus Integration - Overview Specification HR-plus 8 Service Bus Integration - Overview Table of Contents 1. Document information... 3 1.1 History... 3 2. Introduction... 4 2.1 Scope... 4 2.2 Target audience... 4 2.3 Terms and Acronyms...

More information

Building Scalable and Extendable Data Pipeline for Call of Duty Games: Lessons Learned. Yaroslav Tkachenko Senior Data Engineer at Activision

Building Scalable and Extendable Data Pipeline for Call of Duty Games: Lessons Learned. Yaroslav Tkachenko Senior Data Engineer at Activision Building Scalable and Extendable Data Pipeline for Call of Duty Games: Lessons Learned Yaroslav Tkachenko Senior Data Engineer at Activision 1+ PB Data lake size (AWS S3) Number of topics in the biggest

More information

Microservices with Kafka Ecosystem. Guido Schmutz

Microservices with Kafka Ecosystem. Guido Schmutz Microservices with Kafka Ecosystem Guido Schmutz @gschmutz doag2017 Guido Schmutz Working at Trivadis for more than 20 years Oracle ACE Director for Fusion Middleware and SOA Consultant, Trainer Software

More information

Monitor Commands. monitor session source, page 2 monitor session destination, page 4

Monitor Commands. monitor session source, page 2 monitor session destination, page 4 monitor session source, page 2 monitor session destination, page 4 1 monitor session source monitor session source To create a SPAN or RSPAN source session, use the monitor session source command in switch

More information

IEMS 5780 / IERG 4080 Building and Deploying Scalable Machine Learning Services

IEMS 5780 / IERG 4080 Building and Deploying Scalable Machine Learning Services IEMS 5780 / IERG 4080 Building and Deploying Scalable Machine Learning Services Lecture 11 - Asynchronous Tasks and Message Queues Albert Au Yeung 22nd November, 2018 1 / 53 Asynchronous Tasks 2 / 53 Client

More information

Installing and configuring Apache Kafka

Installing and configuring Apache Kafka 3 Installing and configuring Date of Publish: 2018-08-13 http://docs.hortonworks.com Contents Installing Kafka...3 Prerequisites... 3 Installing Kafka Using Ambari... 3... 9 Preparing the Environment...9

More information

MCSA Universal Windows Platform. A Success Guide to Prepare- Programming in C# edusum.com

MCSA Universal Windows Platform. A Success Guide to Prepare- Programming in C# edusum.com 70-483 MCSA Universal Windows Platform A Success Guide to Prepare- Programming in C# edusum.com Table of Contents Introduction to 70-483 Exam on Programming in C#... 2 Microsoft 70-483 Certification Details:...

More information

Asynchronous Programming

Asynchronous Programming Asynchronous Programming Agenda Why async priogramming The Task abstraction Creating Tasks Passing data into tasks and retrieving results Cancellation Task dependency Task Scheduling 2 2 The Benefits of

More information

Hortonworks Cybersecurity Platform

Hortonworks Cybersecurity Platform Tuning Guide () docs.hortonworks.com Hortonworks Cybersecurity : Tuning Guide Copyright 2012-2018 Hortonworks, Inc. Some rights reserved. Hortonworks Cybersecurity (HCP) is a modern data application based

More information

Hortonworks Data Platform

Hortonworks Data Platform Hortonworks Data Platform Apache Flume Component Guide (May 17, 2018) docs.hortonworks.com Hortonworks Data Platform: Apache Flume Component Guide Copyright 2012-2017 Hortonworks, Inc. Some rights reserved.

More information

Hortonworks Cybersecurity Package

Hortonworks Cybersecurity Package Tuning Guide () docs.hortonworks.com Hortonworks Cybersecurity : Tuning Guide Copyright 2012-2018 Hortonworks, Inc. Some rights reserved. Hortonworks Cybersecurity (HCP) is a modern data application based

More information

Memorandum public override string string Node while null return public void bool false Node while null null true while public void Node new

Memorandum public override string string Node while null return public void bool false Node while null null true while public void Node new Memorandum 1.1.1 public override string ToString() string s = ""; while (current!= null) s += current.element.tostring() + ", "; current = current.next; return s; //ToString() 1.1.2 public void Sort()

More information

Basic Concepts of the Energy Lab 2.0 Co-Simulation Platform

Basic Concepts of the Energy Lab 2.0 Co-Simulation Platform Basic Concepts of the Energy Lab 2.0 Co-Simulation Platform Jianlei Liu KIT Institute for Applied Computer Science (Prof. Dr. Veit Hagenmeyer) KIT University of the State of Baden-Wuerttemberg and National

More information

UriQuery query.add + query.tostring()

UriQuery query.add + query.tostring() Employee employee = Employees.CurrentItem as Employee; if (employee!= null) UriQuery query = new UriQuery(); query.add("id", employee.id); _regionmanager.requestnavigate(regionnames.tabregion, new Uri("EmployeeDetailsView"

More information

Understanding and Troubleshooting ASA NAT

Understanding and Troubleshooting ASA NAT Cisco Support Community Expert Series Webcasts in Russian: Understanding and Troubleshooting ASA NAT Created by Oleg Tipisov, Cisco TAC. Version 1.1. Cisco Public Cisco Support Community Expert Series

More information

Cisco Connect. Москва, Цифровизация: здесь и сейчас

Cisco Connect. Москва, Цифровизация: здесь и сейчас Cisco Connect Москва, 2017 Цифровизация: здесь и сейчас Поиск и устранение неисправностей для решений UCCE/ Сергей Олиферов Инженер технической поддержки, Cisco TAC 2017 Cisco and/or its affiliates. All

More information

Using the SDACK Architecture to Build a Big Data Product. Yu-hsin Yeh (Evans Ye) Apache Big Data NA 2016 Vancouver

Using the SDACK Architecture to Build a Big Data Product. Yu-hsin Yeh (Evans Ye) Apache Big Data NA 2016 Vancouver Using the SDACK Architecture to Build a Big Data Product Yu-hsin Yeh (Evans Ye) Apache Big Data NA 2016 Vancouver Outline A Threat Analytic Big Data product The SDACK Architecture Akka Streams and data

More information

C++17. Antony Polukhin Полухин Антон

C++17. Antony Polukhin Полухин Антон C++17 Antony Polukhin Полухин Антон Boost libraries maintainer (DLL, LexicalCast, Any, TypeIndex, Conversion) + Boost.CircularBuffer, Boost.Variant Представитель РГ21, national body Оглавление Автоматическое

More information

Kafka Connect FileSystem Connector Documentation

Kafka Connect FileSystem Connector Documentation Kafka Connect FileSystem Connector Documentation Release 0.1 Mario Molina Dec 25, 2017 Contents 1 Contents 3 1.1 Connector................................................ 3 1.2 Configuration Options..........................................

More information

Four times Microservices: REST, Kubernetes, UI Integration, Async. Eberhard Fellow

Four times Microservices: REST, Kubernetes, UI Integration, Async. Eberhard  Fellow Four times Microservices: REST, Kubernetes, UI Integration, Async Eberhard Wolff @ewolff http://ewolff.com Fellow http://continuous-delivery-buch.de/ http://continuous-delivery-book.com/ http://microservices-buch.de/

More information

Evalua'ng the internet end- user experience in the Russian Federa'on Ini'al Findings

Evalua'ng the internet end- user experience in the Russian Federa'on Ini'al Findings Evalua'ng the internet end- user experience in the Russian Federa'on Ini'al Findings Research commissioned from Predictable Network Solu'ons by Euraisa:Peering 1 1 New peering point @ IXcellerate Moscow

More information

RXTDF - Version: 1. Asynchronous Computing and Composing Asynchronous and Event- Based

RXTDF - Version: 1. Asynchronous Computing and Composing Asynchronous and Event- Based RXTDF - Version: 1 Asynchronous Computing and Composing Asynchronous and Event- Based Asynchronous Computing and Composing Asynchronous and Event- Based RXTDF - Version: 1 5 days Course Description: 5

More information

Apache Kafka a system optimized for writing. Bernhard Hopfenmüller. 23. Oktober 2018

Apache Kafka a system optimized for writing. Bernhard Hopfenmüller. 23. Oktober 2018 Apache Kafka...... a system optimized for writing Bernhard Hopfenmüller 23. Oktober 2018 whoami Bernhard Hopfenmüller IT Consultant @ ATIX AG IRC: Fobhep github.com/fobhep whoarewe The Linux & Open Source

More information

The Emergence of the Datacenter Developer. Tobi Knaup, Co-Founder & CTO at

The Emergence of the Datacenter Developer. Tobi Knaup, Co-Founder & CTO at The Emergence of the Datacenter Developer Tobi Knaup, Co-Founder & CTO at Mesosphere @superguenter A Brief History of Operating Systems 2 1950 s Mainframes Punchcards No operating systems Time Sharing

More information

Kafka-Utils Documentation

Kafka-Utils Documentation Kafka-Utils Documentation Release 1.2.0 Yelp Inc. Jun 20, 2017 Contents 1 Description 1 2 How to install 3 2.1 Configuration............................................... 3 2.2 Cluster Manager.............................................

More information

REAL-TIME ANALYTICS WITH APACHE STORM

REAL-TIME ANALYTICS WITH APACHE STORM REAL-TIME ANALYTICS WITH APACHE STORM Mevlut Demir PhD Student IN TODAY S TALK 1- Problem Formulation 2- A Real-Time Framework and Its Components with an existing applications 3- Proposed Framework 4-

More information

Carnegie Mellon University Implementation Tutorial of Parameter Server

Carnegie Mellon University Implementation Tutorial of Parameter Server Carnegie Mellon University Implementation Tutorial of Parameter Server Mu Li! CSD@CMU & IDL@Baidu! muli@cs.cmu.edu Model/Data partition Learn w from training data X W X Worker/Server Architecture Servers

More information

利用 Mesos 打造高延展性 Container 環境. Frank, Microsoft MTC

利用 Mesos 打造高延展性 Container 環境. Frank, Microsoft MTC 利用 Mesos 打造高延展性 Container 環境 Frank, Microsoft MTC About Me Developer @ Yahoo! DevOps @ HTC Technical Architect @ MSFT Agenda About Docker Manage containers Apache Mesos Mesosphere DC/OS application = application

More information

Redesigning Kafka Message Queue System: Toward a Decentralized Stateful Broker System

Redesigning Kafka Message Queue System: Toward a Decentralized Stateful Broker System Redesigning Kafka Message Queue System: Toward a Decentralized Stateful Broker System COEN241 Cloud Computing Professor Ming-Hwa Wang June, 2017 Yiqiao Li, Yue Liu, Sen Zhang, Pengyu Zhu Department of

More information

Spark Overview. Professor Sasu Tarkoma.

Spark Overview. Professor Sasu Tarkoma. Spark Overview 2015 Professor Sasu Tarkoma www.cs.helsinki.fi Apache Spark Spark is a general-purpose computing framework for iterative tasks API is provided for Java, Scala and Python The model is based

More information

Reactive Programming in Java. Copyright - Syncogni Consulting Pvt Ltd. All rights reserved.

Reactive Programming in Java. Copyright - Syncogni Consulting Pvt Ltd. All rights reserved. Reactive Programming in Java Copyright - Syncogni Consulting Pvt Ltd. All rights reserved. Prerequisites: Functional Programming as in Java 8 Streams of Java 8 Lambda expressions Method references Expectations

More information

Writing Reactive Application using Angular/RxJS, Spring WebFlux and Couchbase. Naresh Chintalcheru

Writing Reactive Application using Angular/RxJS, Spring WebFlux and Couchbase. Naresh Chintalcheru Writing Reactive Application using Angular/RxJS, Spring WebFlux and Couchbase Naresh Chintalcheru Who is Naresh Technology professional for 18+ years Currently, Technical Architect at Cars.com Lecturer

More information

TangeloHub Documentation

TangeloHub Documentation TangeloHub Documentation Release None Kitware, Inc. September 21, 2015 Contents 1 User s Guide 3 1.1 Managing Data.............................................. 3 1.2 Running an Analysis...........................................

More information

Talend Big Data Sandbox. Big Data Insights Cookbook

Talend Big Data Sandbox. Big Data Insights Cookbook Overview Pre-requisites Setup & Configuration Hadoop Distribution Download Demo (Scenario) Overview Pre-requisites Setup & Configuration Hadoop Distribution Demo (Scenario) About this cookbook What is

More information

Spring for Apache Kafka

Spring for Apache Kafka 2.0.0.BUILD-SNAPSHOT Gary Russell, Artem Bilan, Biju Kunjummen Copyright 2016-2017 Pivotal Software Inc. Copies of this document may be made for your own use and for distribution to others, provided that

More information

Scaling the Yelp s logging pipeline with Apache Kafka. Enrico

Scaling the Yelp s logging pipeline with Apache Kafka. Enrico Scaling the Yelp s logging pipeline with Apache Kafka Enrico Canzonieri enrico@yelp.com @EnricoC89 Yelp s Mission Connecting people with great local businesses. Yelp Stats As of Q1 2016 90M 102M 70% 32

More information

Microservices Lessons Learned From a Startup Perspective

Microservices Lessons Learned From a Startup Perspective Microservices Lessons Learned From a Startup Perspective Susanne Kaiser @suksr CTO at Just Software @JustSocialApps Each journey is different People try to copy Netflix, but they can only copy what they

More information

Writing Your First Autodesk Revit Model Review Plug-In

Writing Your First Autodesk Revit Model Review Plug-In Writing Your First Autodesk Revit Model Review Plug-In R. Robert Bell Sparling CP5880 The Revit Model Review plug-in is a great tool for checking a Revit model for matching the standards your company has

More information

Unified-E Windows Application Adapter

Unified-E Windows Application Adapter Unified-E Windows Application Adapter Adapter Version 1.5.0.4 and higher March 2018 Content 1 General... 2 1.1 Communication... 2 1.2 Basic Workflow... 2 2 LabVIEW Example... 2 2.1 How to get the.net Library...

More information

Kafka Streams: Hands-on Session A.A. 2017/18

Kafka Streams: Hands-on Session A.A. 2017/18 Università degli Studi di Roma Tor Vergata Dipartimento di Ingegneria Civile e Ingegneria Informatica Kafka Streams: Hands-on Session A.A. 2017/18 Matteo Nardelli Laurea Magistrale in Ingegneria Informatica

More information

Azure Application Deployment and Management: Service Fabric Working with Service Fabric Services Part 2

Azure Application Deployment and Management: Service Fabric Working with Service Fabric Services Part 2 Azure Application Deployment and Management: Service Fabric Working with Service Fabric Services Part 2 Overview This course includes optional practical exercises where you can try out the techniques demonstrated

More information

A Survey of Distributed Message Broker Queues

A Survey of Distributed Message Broker Queues A Survey of Distributed Message Broker Queues arxiv:1704.00411v1 [cs.dc] 3 Apr 2017 ABSTRACT Vineet John University of Waterloo v2john@uwaterloo.ca This paper surveys the message brokers that are in vogue

More information

9 A Preview of.net 2.0

9 A Preview of.net 2.0 473 9 A Preview of.net 2.0 Microsoft.NET is an evolving system that is continuously improved and extended. In late 2003 Microsoft announced.net 2.0 (codename Whidbey) as a major new version of.net; a beta

More information

RtpTransceiver.stop() .sender and.receiver are never null/undefined, even if {send: false}.

RtpTransceiver.stop() .sender and.receiver are never null/undefined, even if {send: false}. PeerConnection.addTransceiver( video, {send: bool, receive: bool}) PeerConnection.addTransceiver(track) PeerConnection.ontrack has a.transceiver PeerConnection.getTransceivers() RtpTransceiver.mid,.sender,.receiver,.stopped.sender

More information