SlideShare a Scribd company logo
1 of 62
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attributio n-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/
SPRINGONE2GX
WASHINGTON, DC
High Performance Stream
Processing
By Stephane Maldini, Glenn Renfro, David Turanski
@smaldini, @cppwfs, @dturanski
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/
Performance as it pertains to:
Message flow
Serialization
Processing
2
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/
Message Flow: The Myth?
3
“1 million events a second?”
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/
Message Flow: The Myth?
4
“It Depends”
https://spring.io/blog/2015/06/17/spring-xd-benchmarks-part-1
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/
Message Flow: The Myth?
5
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/
Hardware
• Check Network speed
• iperf
• Check Disk Read Write speed
• dd
• Processor Speed (specs)
6
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/
Hardware: Network
7
1 Gb Ethernet
Msg Size Msgs/Sec
100 1,250,000
1,000 125,000
10,000 12,500
100,000 1,250
10 Gb Ethernet
Msg Size Msgs/Sec
100 12,500,000
1,000 1,250,000
10,000 125,000
100,000 12,500
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/
Hardware: Disk
• dd bs=1M count=256 if=/dev/zero of=test
• will just commit your 128 MB of data into a RAM buffer
• initially fast but server is still writing to disk after test
• dd bs=1M count=256 if=/dev/zero of=/tmp/testfile
conv=fdatasync
• This tells dd to require a complete “sync” once, right before it
exits.
• Ensures all data is on the disk before calculating result
8
https://romanrm.net/dd-benchmark
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/
Message Size
9
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/
Message Size
10
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/
Transports
• Rabbit
• perftest
• https://www.rabbitmq.com/java-tools.html
• Kafka
• ProducerPerformance
• kafka-consumer-perf-test.sh
• https://engineering.linkedin.com/kafka/benchmarking-apache-
kafka-2-million-writes-second-three-cheap-machines
11
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/
Testing Tools
• Spring XD
• load-generator-source
• throughput
• https://github.com/spring-projects/spring-xd-modules
12
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/
Configuration
• Kafka
• BatchSize
o Default is 16384
o .0.8.2.1 vs .0.8.1.1
• Rabbit
• prefetch
o Default for XD is 1
13
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/
Batching
• https://github.com/cppwfs/rabbitmqsink
• https://github.com/cppwfs/rabbitmqsource
14
Spring AMQP
Batch
Size
Msgs
Per Sec
1 18,465
10 158,564
100 453,926
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/
Network Hops
• Adds a cost per hop
• Options:
• Direct Binding
• Composed Modules
• Custom Module
15
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/
One last little thing
• JMX is disabled by default
• When enabled it took a performance hit
because how SI was capturing stats via its
exporters
16
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/
Object Serialization
POJO ⇔ byte[] required for transporting data
between remote processes
• XD uses Kryo except when the payload type is
byte[] or String
• XD supports optimizing Kryo for known payload
types
17
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/
Serialization Benchmarks
18
An excellent comparative JVM serializers benchmark:
https://github.com/eishay/jvm-serializers/wiki
Best case: ~1500 ns
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/
Serialization Benchmarks
19
{"media":
{"uri": "http://javaone.com/keynote.ogg", "title":"Javaone Keynote", "width":640,
"height":480,
"format":"video/mpg4","duration":18000000,"size":58982400,"bitrate":262144,"
persons":["Bill Gates", "Steven Jobs"],
"player":"JAVA","copyright":"" },
"images":[
{"uri": "http://javaone.com/keynote_large.jpg","title":"Javaone Keynote","width":
1024,"height":768,"size":"LARGE"},
{ "uri": "http://javaone.com/keynote_small.jpg", "title":"Javaone
Keynote","width": 320,"height":240, "size":"SMALL"}]
}
Domain Object (as JSON):
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/
Object Serialization
• Size matters: YMMV
• Manually optimized Kryo ser/deser ~ 1500 ns = 1.5 µs = .0015
ms.
• Kafka XD;1000B messages ~ 500,000 msg/sec
• 2000 ns per message
• Serialization overhead
• ~ 285174 msg/sec (source|sink)
• At 50,000 msg/sec, the overhead may still be significant
(source|p1|p2|p3|sink)
20
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/
Optimizing Kryo in XD
• Disable references - If you know payload
types do not contain cyclic references.
xd.codec.kryo.references=false (in servers.yml)
• This is a global setting for all streams
• Register a custom serializer for a known
payload type
• Install a jar with containing the required beans in xd/lib. XD
will auto-configure these
21
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/
Custom Serializers in XD
22
public PojoCodec(java.util.List<KryoRegistrar> kryoRegistrars, boolean useReferences)
package spring.xd.bus.ext;
...
@Configuration
public class CustomKryoRegistrarConfig {
@Bean
public KryoRegistrar myCustomRegistration() {
List<Registration> registrations = new ArrayList<>();
registrations.add(new Registration(MyObject.class, new MySerializer(),62));
return new KryoRegistrationRegistrar(registrations);
}
}
XD scans this
package for beans of
type KryoRegistrar
Each Registration associates
a type to a serializer and a
unique ID
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/
Custom Serializers in XD
23
public class AddressSerializer extends Serializer<Address> {
@Override
public void write(Kryo kryo, Output output, Address address) {
output.writeString(address.getStreet());
output.writeString(address.getCity());
output.writeString(address.getCountry());
}
@Override
public Address read(Kryo kryo, Input input, Class<Address> type) {
return new Address(input.readString(),input.readString(),input.readString());
}
}
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/
Serializable Domain Object
24
public class Address implements KryoSerializable {
...
@Override
public void write(Kryo kryo, Output output) {
output.writeString(this.street);
output.writeString(this.city);
output.writeString(this.country);
}
@Override
public void read(Kryo kryo, Input input) {
this.street = input.readString();
this.city = input.readString();
this.country = input.readString();
}
}
• (+) Simple: This
works out of the box
with no additional
configuration
• (-) Requires access
to source or wrapping
• (-) Internal
benchmarks indicate
this is not as fast as
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/
Benchmarking Your Custom Serializers
25
Sample Results Ser (ns) Desr (ns)
Baseline 2710.5 4590.9
Serializable Domain
Object
1663.3 2579.1
Custom Serializers 1126.1 2873.8
The spring-xd-samples repo includes a serialization-
benchmarks project
• https://github.com/spring-projects/spring-xd-
samples/tree/master/serialization-benchmarks
Let’s look at some code…
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/
What about Processing ?
• Source Msg/s > Sink Msg/s ?
• Rate limited by Sink
• Blocking transformation (http, file…) ?
• Rate limited by blocking Processor
• Polling Sources Pausing ?
• Rate limited by small Prefetch properties
26
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/
Mitigating Cost of IO
• Negative impact ?
• Scale Out ?
o Loosing Data Affinity (colocation…)
o Network cost
• Scale Up ?
o Message passing Overhead
o More In-Flight Data
27
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/
Mitigating Cost of IO
• Negative impact ?
• Scale Out ?
o Loosing Data Affinity (colocation…)
o Network cost
• Scale Up ?
o Message passing Overhead
o More In-Flight Data
28
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/
Blocking IO
29
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/
Asynchronous IO
30
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/
Asynchronous IO
• Mitigate temporarily slow processors/sink
• Back to degraded mode when queue full
• Async Hand-Off generates Garbage
31
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/
Reactor Core:
Efficient Asynchronous
• Trade-off Memory vs Garbage generation
• Pre-Allocated Ring Buffer
• Concurrent consuming without duplicating
buffer content
• Ring Buffer Consumer Sequences
32
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/
Ring
What?
33
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/
Module Teasing
34
@EnableReactorModule(concurrency = 4) /* Invoke accept() 4 times */
public class Sample implements ReactiveProcessor<Message, Message> {
@Override
public void accept(
Publisher<Message> messageStream, /* A Ring Buffer Consumer */
ReactiveOutput<Message> output) { /* A Channel Output bridge */
output.writeOutput(messageStream);
}
}
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/
Questions
35
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ 36
Microservices to Fast Data
John T. Davies
Learn More. Stay Connected.
@springcentral Spring.io/video
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/
37
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/
USING THIS TEMPLATE
38
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/
STOP! Download Fonts Now.
PLEASE DOWNLOAD AND INSTALL THESE FONTS BEFORE CREATING
YOUR PRESENTATION. You can download the fonts here…
https://www.dropbox.com/s/na8jewnsp8dp659/SpringOne-2015-Fonts.zip?dl=0
Fonts included in the ZIP file:
• Proxima Nova (body text)
• Domine (included but no longer needed)
http://www.fontspring.com/support/installing/how-do-i-install-fonts-on-my-mac
http://www.fontspring.com/support/installing/how-do-i-install-fonts-on-my-windows-pc
39
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/
Intro
This template has been carefully prepared with specific layouts, colors, fonts and
more. This short intro will outline the basic components of this template.
Note: This template includes slides with approved color palette, fonts, logos and
clip art. It’s a good idea to keep these slides in order to quickly access these assets
then delete the slides when you have finished creating your presentation.
40
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/
Inserting New Slides and Applying Layouts
• To create different types of slides, select New Slide and apply desired Layout
• If you make formatting changes to a slide and want to reapply the default
settings, click Reset
41
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/
Layouts
There are 13 layouts
• Title Only – Standard slide with no text content box, do not use for section title
• Title and Content (1 Col) – Standard slide with title and text content box
• Title and Content (2 Col) – Standard slide with title and two text content boxes
• Comparison – Standard slide with title and two text content boxes with subtitles
• Section Title – Use between sections
• No text
• Table – Quick and easy way to get a table with brand colors
• Bar Chart – Quick and easy way to get a bar chart with brand colors
• Line Chart – Quick and easy way to get a line chart with brand colors
• Pie Chart – Quick and easy way to get a pie chart with brand colors
• Code Formatting – Quick and easy way to get preferred code formatting
• Title Slide – Presentation title with author name and contact info. Use only once in presentation.
• Completely blank – A totally blank, white slide. Use sparingly.
42
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/
Title Proxima Nova Bold (30pt)
• All body text is Proxima Nova Regular
• Subhead (18pt)
• Level Two (18pt)
o Level Three (18pt)
o Level Four (18pt)
• Line spacing is set in master slides
43
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/
Brand Colors
44
R: 241
G: 241
B: 241
R: 153
G: 153
B: 153
R: 109
G: 179
B: 63
Spring
Brand Colors
R: 52
G: 48
B: 45
SpringOne 2GX 2015
Theme Colors
R: 83
G: 83
B: 83
R: 12
G: 48
B: 100
R: 156
G: 209
B: 121
R: 204
G: 204
B: 204
R: 38
G: 97
B: 168
R: 114
G: 163
B: 211
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/
Code Slide
45
// This is Arial: 18 pt or higher please
public class TransferServiceImpl implements TransferService {
public TransferServiceImpl(AccountRepository ar) {
this.accountRepository = ar;
}
…
}
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ 46
<Your CTA>
<Related Session>
Learn More. Stay Connected.
@springcentral Spring.io/video
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/
Safe Harbor Statement
The following is intended to outline the general direction of Pivotal's offerings. It is
intended for information purposes only and may not be incorporated into any
contract. Any information regarding pre-release of Pivotal offerings, future updates
or other planned modifications is subject to ongoing evaluation by Pivotal and is
subject to change. This information is provided without warranty or any kind,
express or implied, and is not a commitment to deliver any material, code, or
functionality, and should not be relied upon in making purchasing decisions
regarding Pivotal's offerings. These purchasing decisions should only be based on
features currently available. The development, release, and timing of any features
or functionality described for Pivotal's offerings in this presentation remain at the
sole discretion of Pivotal. Pivotal has no obligation to update forward looking
information in this presentation.
47
If you are a pivotal employee and your talk contains forward facing
information, please include this slide at the beginning or
conclusion of the presentation.
Remove this text box before presenting.
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/
LOGOS & ICONS
48
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/
Logos
49
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/
Event Logos and Icons
50
Logo on dark Logo on light Date logo on dark Date logo on light
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/
Spring Project Icons
51
Spring
Framework
Spring
Security
Spring
Data
Spring
Batch
Spring
Integration
Spring
Reactor
Spring
AMQP
Spring
Hateoas
Spring
Mobile
Spring
Android
Spring
Social
Groovy Spring
Web Services
Spring
Web Flow
Spring
XD
Spring
Boot
Spring
LDAP
Grails
PNG and PSD files for all Spring projects can be found here…
https://www.dropbox.com/sh/5rbbt8v6evvm7xm/AAAZmhgf0zglGHZUWYhPvojFa?dl=0
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/
Spring Tool Suite Icons
52
Spring Tool Suite Groovy / Grails Tool Suite
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/
Spring Document Icons
53
Spring Framework ToolsSupport
Guides Reference AppTutorials
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/
Additional Spring Icons
54
Continuous
Integration
Metrics Forums /
Discussion
Blog @Issues
All Author Broadcast Date News
Event
Releases Apple LinuxEngineering Windows
Professional
Support
Community
Support
Location
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/
Icon Guidelines
• These icons can be used when Spring
icons are not appropriate.
• Max icon size is 2.08 inches –
anything larger and the icon will be
blurry
• Icons are transparent and can be
placed over images and other objects
• To use an icon, simply choose, copy
and paste
• 200x200 PNG files can be found here…
https://www.dropbox.com/sh/wy65b4l5t4fv9
b4/AAD1LMHcOtwJSTbNu23zqywka?dl=0
55
Max icon size:
2.08 inches
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ 56
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ 57
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/
CHARTS & TABLES
58
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/
Sample Pie Chart
59
1st Qtr
2nd Qtr
3rd Qtr
4th Qtr
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/
Sample Bar Chart
60
0
23
45
68
90
113
1st Qtr 2nd Qtr 3rd Qtr 4th Qtr
North
South
East
West
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/
Sample Line Chart
61
0
23
45
68
90
113
1st Qtr 2nd Qtr 3rd Qtr 4th Qtr
North
South
East
West
Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/
Sample Table
62
2007 2008 2009 2010
Category 1 2.4 6.4 4.1 6.6
Category 2 8.2 4.5 3.2 3.8
Category 3 4.6 3.2 1.9 9.6
Category 4 6.7 3.3 3.4 2.2
Category 5 4.3 5.6 7.1 3.4

More Related Content

What's hot

Full Steam Ahead, R2DBC!
Full Steam Ahead, R2DBC!Full Steam Ahead, R2DBC!
Full Steam Ahead, R2DBC!VMware Tanzu
 
Enterprise makeover. Be a good web citizen, deliver continuously and change y...
Enterprise makeover. Be a good web citizen, deliver continuously and change y...Enterprise makeover. Be a good web citizen, deliver continuously and change y...
Enterprise makeover. Be a good web citizen, deliver continuously and change y...Mateusz Kwasniewski
 
Building an HTML5 Video Player
Building an HTML5 Video PlayerBuilding an HTML5 Video Player
Building an HTML5 Video PlayerBrightcove
 
Interview preparation devops
Interview preparation devopsInterview preparation devops
Interview preparation devopsMallikarjuna G D
 
Securing User Data with SQLCipher
Securing User Data with SQLCipherSecuring User Data with SQLCipher
Securing User Data with SQLCipherCommonsWare
 
Implementing a WebRTC endpoint in GStreamer: challenges, problems and perspec...
Implementing a WebRTC endpoint in GStreamer: challenges, problems and perspec...Implementing a WebRTC endpoint in GStreamer: challenges, problems and perspec...
Implementing a WebRTC endpoint in GStreamer: challenges, problems and perspec...Luis Lopez
 
8 pre launch steps to go with the web rtc based application development
8 pre launch steps to go with the web rtc based application development8 pre launch steps to go with the web rtc based application development
8 pre launch steps to go with the web rtc based application developmentMoonTechnolabsPvtLtd
 
Cloud Foundry UAA as an Identity Gateway
Cloud Foundry UAA as an Identity GatewayCloud Foundry UAA as an Identity Gateway
Cloud Foundry UAA as an Identity GatewayVMware Tanzu
 
Calling all modularity solutions
Calling all modularity solutionsCalling all modularity solutions
Calling all modularity solutionsSangjin Lee
 
Wordcamp Thessaloniki 2011 The Nextweb
Wordcamp Thessaloniki 2011 The NextwebWordcamp Thessaloniki 2011 The Nextweb
Wordcamp Thessaloniki 2011 The NextwebGeorge Kanellopoulos
 
Demystify LDAP and OIDC Providing Security to Your App on Kubernetes
Demystify LDAP and OIDC Providing Security to Your App on KubernetesDemystify LDAP and OIDC Providing Security to Your App on Kubernetes
Demystify LDAP and OIDC Providing Security to Your App on KubernetesVMware Tanzu
 
Strengthening Adobe’s Enterprise Platform with Day Software and Open Development
Strengthening Adobe’s Enterprise Platform with Day Software and Open DevelopmentStrengthening Adobe’s Enterprise Platform with Day Software and Open Development
Strengthening Adobe’s Enterprise Platform with Day Software and Open DevelopmentCraig Randall
 

What's hot (15)

Full Steam Ahead, R2DBC!
Full Steam Ahead, R2DBC!Full Steam Ahead, R2DBC!
Full Steam Ahead, R2DBC!
 
Enterprise makeover. Be a good web citizen, deliver continuously and change y...
Enterprise makeover. Be a good web citizen, deliver continuously and change y...Enterprise makeover. Be a good web citizen, deliver continuously and change y...
Enterprise makeover. Be a good web citizen, deliver continuously and change y...
 
Building an HTML5 Video Player
Building an HTML5 Video PlayerBuilding an HTML5 Video Player
Building an HTML5 Video Player
 
Interview preparation devops
Interview preparation devopsInterview preparation devops
Interview preparation devops
 
Securing User Data with SQLCipher
Securing User Data with SQLCipherSecuring User Data with SQLCipher
Securing User Data with SQLCipher
 
Implementing a WebRTC endpoint in GStreamer: challenges, problems and perspec...
Implementing a WebRTC endpoint in GStreamer: challenges, problems and perspec...Implementing a WebRTC endpoint in GStreamer: challenges, problems and perspec...
Implementing a WebRTC endpoint in GStreamer: challenges, problems and perspec...
 
8 pre launch steps to go with the web rtc based application development
8 pre launch steps to go with the web rtc based application development8 pre launch steps to go with the web rtc based application development
8 pre launch steps to go with the web rtc based application development
 
Cloud Foundry UAA as an Identity Gateway
Cloud Foundry UAA as an Identity GatewayCloud Foundry UAA as an Identity Gateway
Cloud Foundry UAA as an Identity Gateway
 
Calling all modularity solutions
Calling all modularity solutionsCalling all modularity solutions
Calling all modularity solutions
 
Embrace the JVM
Embrace the JVMEmbrace the JVM
Embrace the JVM
 
Ask us anything v9
Ask us anything v9Ask us anything v9
Ask us anything v9
 
Wordcamp Thessaloniki 2011 The Nextweb
Wordcamp Thessaloniki 2011 The NextwebWordcamp Thessaloniki 2011 The Nextweb
Wordcamp Thessaloniki 2011 The Nextweb
 
Demystify LDAP and OIDC Providing Security to Your App on Kubernetes
Demystify LDAP and OIDC Providing Security to Your App on KubernetesDemystify LDAP and OIDC Providing Security to Your App on Kubernetes
Demystify LDAP and OIDC Providing Security to Your App on Kubernetes
 
Strengthening Adobe’s Enterprise Platform with Day Software and Open Development
Strengthening Adobe’s Enterprise Platform with Day Software and Open DevelopmentStrengthening Adobe’s Enterprise Platform with Day Software and Open Development
Strengthening Adobe’s Enterprise Platform with Day Software and Open Development
 
JSX
JSXJSX
JSX
 

Viewers also liked

Introduction to Big Data
Introduction to Big DataIntroduction to Big Data
Introduction to Big DataWim Van Leuven
 
Millennials 5 insights and 5 watchouts
Millennials   5 insights and 5 watchoutsMillennials   5 insights and 5 watchouts
Millennials 5 insights and 5 watchoutsMatt Carter
 
My $0 Growth Experiments That Added Thousands of App Users
My $0 Growth Experiments That Added Thousands of App UsersMy $0 Growth Experiments That Added Thousands of App Users
My $0 Growth Experiments That Added Thousands of App UsersMax Pelzner
 
Photoquai Paris 2007
Photoquai Paris 2007Photoquai Paris 2007
Photoquai Paris 2007mblanchot
 
DDMC - Countdown to the data explosion
DDMC - Countdown to the data explosionDDMC - Countdown to the data explosion
DDMC - Countdown to the data explosionAdNerds
 
Scaling Continuous Delivery to minimize risks (Delivery of Things 2016)
Scaling Continuous Delivery to minimize risks (Delivery of Things 2016)Scaling Continuous Delivery to minimize risks (Delivery of Things 2016)
Scaling Continuous Delivery to minimize risks (Delivery of Things 2016)Kinshuk Mishra
 
Voeuxroge08
Voeuxroge08Voeuxroge08
Voeuxroge08magicc
 
Personalizing Treatment using Oracle TRC, OpenWorld 2014
Personalizing Treatment using Oracle TRC, OpenWorld 2014Personalizing Treatment using Oracle TRC, OpenWorld 2014
Personalizing Treatment using Oracle TRC, OpenWorld 2014René Kuipers
 
Belle Maman
Belle MamanBelle Maman
Belle Mamaneric4274
 
Cats, cats & more cats
Cats, cats & more catsCats, cats & more cats
Cats, cats & more catstrialbyfire
 
Always Design Responsibly: Social Responsibility in Technological Innovation
Always Design Responsibly: Social Responsibility in Technological InnovationAlways Design Responsibly: Social Responsibility in Technological Innovation
Always Design Responsibly: Social Responsibility in Technological InnovationMikko Järvenpää
 
Perles Du Bac 2008
Perles Du Bac 2008Perles Du Bac 2008
Perles Du Bac 2008zalinet
 
Business Change through Predictive Analytics
Business Change through Predictive AnalyticsBusiness Change through Predictive Analytics
Business Change through Predictive AnalyticsChandan Rajah
 
Sawa Bona - Sikhona
Sawa Bona - SikhonaSawa Bona - Sikhona
Sawa Bona - SikhonaChris M
 
Les nouveaux usages des ressources audiovisuelles : partage et diffusion sur ...
Les nouveaux usages des ressources audiovisuelles : partage et diffusion sur ...Les nouveaux usages des ressources audiovisuelles : partage et diffusion sur ...
Les nouveaux usages des ressources audiovisuelles : partage et diffusion sur ...Atelier des Arkéonautes
 
5 QuickBooks Mistakes Every Business Should Avoid
5 QuickBooks Mistakes Every Business Should Avoid5 QuickBooks Mistakes Every Business Should Avoid
5 QuickBooks Mistakes Every Business Should AvoidKartik Yadav
 
Learning About At-Risk Veterans Using 
Online Network Surveys
Learning About At-Risk Veterans Using 
Online Network SurveysLearning About At-Risk Veterans Using 
Online Network Surveys
Learning About At-Risk Veterans Using 
Online Network SurveysSean Taylor
 

Viewers also liked (20)

Introduction to Big Data
Introduction to Big DataIntroduction to Big Data
Introduction to Big Data
 
Biwa summit15
Biwa summit15Biwa summit15
Biwa summit15
 
Millennials 5 insights and 5 watchouts
Millennials   5 insights and 5 watchoutsMillennials   5 insights and 5 watchouts
Millennials 5 insights and 5 watchouts
 
My $0 Growth Experiments That Added Thousands of App Users
My $0 Growth Experiments That Added Thousands of App UsersMy $0 Growth Experiments That Added Thousands of App Users
My $0 Growth Experiments That Added Thousands of App Users
 
Photoquai Paris 2007
Photoquai Paris 2007Photoquai Paris 2007
Photoquai Paris 2007
 
DDMC - Countdown to the data explosion
DDMC - Countdown to the data explosionDDMC - Countdown to the data explosion
DDMC - Countdown to the data explosion
 
Kinkyfunk
KinkyfunkKinkyfunk
Kinkyfunk
 
Scaling Continuous Delivery to minimize risks (Delivery of Things 2016)
Scaling Continuous Delivery to minimize risks (Delivery of Things 2016)Scaling Continuous Delivery to minimize risks (Delivery of Things 2016)
Scaling Continuous Delivery to minimize risks (Delivery of Things 2016)
 
Voeuxroge08
Voeuxroge08Voeuxroge08
Voeuxroge08
 
Personalizing Treatment using Oracle TRC, OpenWorld 2014
Personalizing Treatment using Oracle TRC, OpenWorld 2014Personalizing Treatment using Oracle TRC, OpenWorld 2014
Personalizing Treatment using Oracle TRC, OpenWorld 2014
 
Belle Maman
Belle MamanBelle Maman
Belle Maman
 
Content Usability
Content Usability  Content Usability
Content Usability
 
Cats, cats & more cats
Cats, cats & more catsCats, cats & more cats
Cats, cats & more cats
 
Always Design Responsibly: Social Responsibility in Technological Innovation
Always Design Responsibly: Social Responsibility in Technological InnovationAlways Design Responsibly: Social Responsibility in Technological Innovation
Always Design Responsibly: Social Responsibility in Technological Innovation
 
Perles Du Bac 2008
Perles Du Bac 2008Perles Du Bac 2008
Perles Du Bac 2008
 
Business Change through Predictive Analytics
Business Change through Predictive AnalyticsBusiness Change through Predictive Analytics
Business Change through Predictive Analytics
 
Sawa Bona - Sikhona
Sawa Bona - SikhonaSawa Bona - Sikhona
Sawa Bona - Sikhona
 
Les nouveaux usages des ressources audiovisuelles : partage et diffusion sur ...
Les nouveaux usages des ressources audiovisuelles : partage et diffusion sur ...Les nouveaux usages des ressources audiovisuelles : partage et diffusion sur ...
Les nouveaux usages des ressources audiovisuelles : partage et diffusion sur ...
 
5 QuickBooks Mistakes Every Business Should Avoid
5 QuickBooks Mistakes Every Business Should Avoid5 QuickBooks Mistakes Every Business Should Avoid
5 QuickBooks Mistakes Every Business Should Avoid
 
Learning About At-Risk Veterans Using 
Online Network Surveys
Learning About At-Risk Veterans Using 
Online Network SurveysLearning About At-Risk Veterans Using 
Online Network Surveys
Learning About At-Risk Veterans Using 
Online Network Surveys
 

Similar to High performance stream processing

Running Java Applications on Cloud Foundry
Running Java Applications on Cloud FoundryRunning Java Applications on Cloud Foundry
Running Java Applications on Cloud FoundryVMware Tanzu
 
12 Factor, or Cloud Native Apps - What EXACTLY Does that Mean for Spring Deve...
12 Factor, or Cloud Native Apps - What EXACTLY Does that Mean for Spring Deve...12 Factor, or Cloud Native Apps - What EXACTLY Does that Mean for Spring Deve...
12 Factor, or Cloud Native Apps - What EXACTLY Does that Mean for Spring Deve...VMware Tanzu
 
Connecting All Abstractions with Istio
Connecting All Abstractions with IstioConnecting All Abstractions with Istio
Connecting All Abstractions with IstioVMware Tanzu
 
12 Factor, or Cloud Native Apps – What EXACTLY Does that Mean for Spring Deve...
12 Factor, or Cloud Native Apps – What EXACTLY Does that Mean for Spring Deve...12 Factor, or Cloud Native Apps – What EXACTLY Does that Mean for Spring Deve...
12 Factor, or Cloud Native Apps – What EXACTLY Does that Mean for Spring Deve...cornelia davis
 
Building .NET Microservices
Building .NET MicroservicesBuilding .NET Microservices
Building .NET MicroservicesVMware Tanzu
 
Ratpack - SpringOne2GX 2015
Ratpack - SpringOne2GX 2015Ratpack - SpringOne2GX 2015
Ratpack - SpringOne2GX 2015Daniel Woods
 
Cloud-Native Streaming and Event-Driven Microservices
Cloud-Native Streaming and Event-Driven MicroservicesCloud-Native Streaming and Event-Driven Microservices
Cloud-Native Streaming and Event-Driven MicroservicesVMware Tanzu
 
Lattice: A Cloud-Native Platform for Your Spring Applications
Lattice: A Cloud-Native Platform for Your Spring ApplicationsLattice: A Cloud-Native Platform for Your Spring Applications
Lattice: A Cloud-Native Platform for Your Spring ApplicationsMatt Stine
 
Building Highly Scalable Spring Applications using In-Memory Data Grids
Building Highly Scalable Spring Applications using In-Memory Data GridsBuilding Highly Scalable Spring Applications using In-Memory Data Grids
Building Highly Scalable Spring Applications using In-Memory Data GridsJohn Blum
 
It’s a Multi-Cloud World, But What About The Data?
It’s a Multi-Cloud World, But What About The Data?It’s a Multi-Cloud World, But What About The Data?
It’s a Multi-Cloud World, But What About The Data?VMware Tanzu
 
YugaByte DB—A Planet-Scale Database for Low Latency Transactional Apps
YugaByte DB—A Planet-Scale Database for Low Latency Transactional AppsYugaByte DB—A Planet-Scale Database for Low Latency Transactional Apps
YugaByte DB—A Planet-Scale Database for Low Latency Transactional AppsVMware Tanzu
 
Migrating to Angular 4 for Spring Developers
Migrating to Angular 4 for Spring Developers Migrating to Angular 4 for Spring Developers
Migrating to Angular 4 for Spring Developers VMware Tanzu
 
Migrating to Angular 5 for Spring Developers
Migrating to Angular 5 for Spring DevelopersMigrating to Angular 5 for Spring Developers
Migrating to Angular 5 for Spring DevelopersGunnar Hillert
 
Federated Queries with HAWQ - SQL on Hadoop and Beyond
Federated Queries with HAWQ - SQL on Hadoop and BeyondFederated Queries with HAWQ - SQL on Hadoop and Beyond
Federated Queries with HAWQ - SQL on Hadoop and BeyondChristian Tzolov
 
Chaos Engineering for PCF
Chaos Engineering for PCFChaos Engineering for PCF
Chaos Engineering for PCFVMware Tanzu
 
Developing Real-Time Data Pipelines with Apache Kafka
Developing Real-Time Data Pipelines with Apache KafkaDeveloping Real-Time Data Pipelines with Apache Kafka
Developing Real-Time Data Pipelines with Apache KafkaJoe Stein
 
Deploying Spring Boot apps on Kubernetes
Deploying Spring Boot apps on KubernetesDeploying Spring Boot apps on Kubernetes
Deploying Spring Boot apps on KubernetesVMware Tanzu
 
Marcin Grzejszczak - Contract Tests in the Enterprise
Marcin Grzejszczak - Contract Tests in the EnterpriseMarcin Grzejszczak - Contract Tests in the Enterprise
Marcin Grzejszczak - Contract Tests in the EnterpriseSegFaultConf
 
Introduction to Reactive Streams and Reactor 2.5
Introduction to Reactive Streams and Reactor 2.5Introduction to Reactive Streams and Reactor 2.5
Introduction to Reactive Streams and Reactor 2.5Stéphane Maldini
 
Cloud Event Driven Architectures with Spring Cloud Stream 2.0
Cloud Event Driven Architectures with Spring Cloud Stream 2.0Cloud Event Driven Architectures with Spring Cloud Stream 2.0
Cloud Event Driven Architectures with Spring Cloud Stream 2.0VMware Tanzu
 

Similar to High performance stream processing (20)

Running Java Applications on Cloud Foundry
Running Java Applications on Cloud FoundryRunning Java Applications on Cloud Foundry
Running Java Applications on Cloud Foundry
 
12 Factor, or Cloud Native Apps - What EXACTLY Does that Mean for Spring Deve...
12 Factor, or Cloud Native Apps - What EXACTLY Does that Mean for Spring Deve...12 Factor, or Cloud Native Apps - What EXACTLY Does that Mean for Spring Deve...
12 Factor, or Cloud Native Apps - What EXACTLY Does that Mean for Spring Deve...
 
Connecting All Abstractions with Istio
Connecting All Abstractions with IstioConnecting All Abstractions with Istio
Connecting All Abstractions with Istio
 
12 Factor, or Cloud Native Apps – What EXACTLY Does that Mean for Spring Deve...
12 Factor, or Cloud Native Apps – What EXACTLY Does that Mean for Spring Deve...12 Factor, or Cloud Native Apps – What EXACTLY Does that Mean for Spring Deve...
12 Factor, or Cloud Native Apps – What EXACTLY Does that Mean for Spring Deve...
 
Building .NET Microservices
Building .NET MicroservicesBuilding .NET Microservices
Building .NET Microservices
 
Ratpack - SpringOne2GX 2015
Ratpack - SpringOne2GX 2015Ratpack - SpringOne2GX 2015
Ratpack - SpringOne2GX 2015
 
Cloud-Native Streaming and Event-Driven Microservices
Cloud-Native Streaming and Event-Driven MicroservicesCloud-Native Streaming and Event-Driven Microservices
Cloud-Native Streaming and Event-Driven Microservices
 
Lattice: A Cloud-Native Platform for Your Spring Applications
Lattice: A Cloud-Native Platform for Your Spring ApplicationsLattice: A Cloud-Native Platform for Your Spring Applications
Lattice: A Cloud-Native Platform for Your Spring Applications
 
Building Highly Scalable Spring Applications using In-Memory Data Grids
Building Highly Scalable Spring Applications using In-Memory Data GridsBuilding Highly Scalable Spring Applications using In-Memory Data Grids
Building Highly Scalable Spring Applications using In-Memory Data Grids
 
It’s a Multi-Cloud World, But What About The Data?
It’s a Multi-Cloud World, But What About The Data?It’s a Multi-Cloud World, But What About The Data?
It’s a Multi-Cloud World, But What About The Data?
 
YugaByte DB—A Planet-Scale Database for Low Latency Transactional Apps
YugaByte DB—A Planet-Scale Database for Low Latency Transactional AppsYugaByte DB—A Planet-Scale Database for Low Latency Transactional Apps
YugaByte DB—A Planet-Scale Database for Low Latency Transactional Apps
 
Migrating to Angular 4 for Spring Developers
Migrating to Angular 4 for Spring Developers Migrating to Angular 4 for Spring Developers
Migrating to Angular 4 for Spring Developers
 
Migrating to Angular 5 for Spring Developers
Migrating to Angular 5 for Spring DevelopersMigrating to Angular 5 for Spring Developers
Migrating to Angular 5 for Spring Developers
 
Federated Queries with HAWQ - SQL on Hadoop and Beyond
Federated Queries with HAWQ - SQL on Hadoop and BeyondFederated Queries with HAWQ - SQL on Hadoop and Beyond
Federated Queries with HAWQ - SQL on Hadoop and Beyond
 
Chaos Engineering for PCF
Chaos Engineering for PCFChaos Engineering for PCF
Chaos Engineering for PCF
 
Developing Real-Time Data Pipelines with Apache Kafka
Developing Real-Time Data Pipelines with Apache KafkaDeveloping Real-Time Data Pipelines with Apache Kafka
Developing Real-Time Data Pipelines with Apache Kafka
 
Deploying Spring Boot apps on Kubernetes
Deploying Spring Boot apps on KubernetesDeploying Spring Boot apps on Kubernetes
Deploying Spring Boot apps on Kubernetes
 
Marcin Grzejszczak - Contract Tests in the Enterprise
Marcin Grzejszczak - Contract Tests in the EnterpriseMarcin Grzejszczak - Contract Tests in the Enterprise
Marcin Grzejszczak - Contract Tests in the Enterprise
 
Introduction to Reactive Streams and Reactor 2.5
Introduction to Reactive Streams and Reactor 2.5Introduction to Reactive Streams and Reactor 2.5
Introduction to Reactive Streams and Reactor 2.5
 
Cloud Event Driven Architectures with Spring Cloud Stream 2.0
Cloud Event Driven Architectures with Spring Cloud Stream 2.0Cloud Event Driven Architectures with Spring Cloud Stream 2.0
Cloud Event Driven Architectures with Spring Cloud Stream 2.0
 

Recently uploaded

Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 

Recently uploaded (20)

Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 

High performance stream processing

  • 1. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attributio n-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ SPRINGONE2GX WASHINGTON, DC High Performance Stream Processing By Stephane Maldini, Glenn Renfro, David Turanski @smaldini, @cppwfs, @dturanski
  • 2. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ Performance as it pertains to: Message flow Serialization Processing 2
  • 3. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ Message Flow: The Myth? 3 “1 million events a second?”
  • 4. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ Message Flow: The Myth? 4 “It Depends” https://spring.io/blog/2015/06/17/spring-xd-benchmarks-part-1
  • 5. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ Message Flow: The Myth? 5
  • 6. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ Hardware • Check Network speed • iperf • Check Disk Read Write speed • dd • Processor Speed (specs) 6
  • 7. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ Hardware: Network 7 1 Gb Ethernet Msg Size Msgs/Sec 100 1,250,000 1,000 125,000 10,000 12,500 100,000 1,250 10 Gb Ethernet Msg Size Msgs/Sec 100 12,500,000 1,000 1,250,000 10,000 125,000 100,000 12,500
  • 8. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ Hardware: Disk • dd bs=1M count=256 if=/dev/zero of=test • will just commit your 128 MB of data into a RAM buffer • initially fast but server is still writing to disk after test • dd bs=1M count=256 if=/dev/zero of=/tmp/testfile conv=fdatasync • This tells dd to require a complete “sync” once, right before it exits. • Ensures all data is on the disk before calculating result 8 https://romanrm.net/dd-benchmark
  • 9. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ Message Size 9
  • 10. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ Message Size 10
  • 11. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ Transports • Rabbit • perftest • https://www.rabbitmq.com/java-tools.html • Kafka • ProducerPerformance • kafka-consumer-perf-test.sh • https://engineering.linkedin.com/kafka/benchmarking-apache- kafka-2-million-writes-second-three-cheap-machines 11
  • 12. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ Testing Tools • Spring XD • load-generator-source • throughput • https://github.com/spring-projects/spring-xd-modules 12
  • 13. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ Configuration • Kafka • BatchSize o Default is 16384 o .0.8.2.1 vs .0.8.1.1 • Rabbit • prefetch o Default for XD is 1 13
  • 14. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ Batching • https://github.com/cppwfs/rabbitmqsink • https://github.com/cppwfs/rabbitmqsource 14 Spring AMQP Batch Size Msgs Per Sec 1 18,465 10 158,564 100 453,926
  • 15. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ Network Hops • Adds a cost per hop • Options: • Direct Binding • Composed Modules • Custom Module 15
  • 16. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ One last little thing • JMX is disabled by default • When enabled it took a performance hit because how SI was capturing stats via its exporters 16
  • 17. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ Object Serialization POJO ⇔ byte[] required for transporting data between remote processes • XD uses Kryo except when the payload type is byte[] or String • XD supports optimizing Kryo for known payload types 17
  • 18. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ Serialization Benchmarks 18 An excellent comparative JVM serializers benchmark: https://github.com/eishay/jvm-serializers/wiki Best case: ~1500 ns
  • 19. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ Serialization Benchmarks 19 {"media": {"uri": "http://javaone.com/keynote.ogg", "title":"Javaone Keynote", "width":640, "height":480, "format":"video/mpg4","duration":18000000,"size":58982400,"bitrate":262144," persons":["Bill Gates", "Steven Jobs"], "player":"JAVA","copyright":"" }, "images":[ {"uri": "http://javaone.com/keynote_large.jpg","title":"Javaone Keynote","width": 1024,"height":768,"size":"LARGE"}, { "uri": "http://javaone.com/keynote_small.jpg", "title":"Javaone Keynote","width": 320,"height":240, "size":"SMALL"}] } Domain Object (as JSON):
  • 20. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ Object Serialization • Size matters: YMMV • Manually optimized Kryo ser/deser ~ 1500 ns = 1.5 µs = .0015 ms. • Kafka XD;1000B messages ~ 500,000 msg/sec • 2000 ns per message • Serialization overhead • ~ 285174 msg/sec (source|sink) • At 50,000 msg/sec, the overhead may still be significant (source|p1|p2|p3|sink) 20
  • 21. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ Optimizing Kryo in XD • Disable references - If you know payload types do not contain cyclic references. xd.codec.kryo.references=false (in servers.yml) • This is a global setting for all streams • Register a custom serializer for a known payload type • Install a jar with containing the required beans in xd/lib. XD will auto-configure these 21
  • 22. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ Custom Serializers in XD 22 public PojoCodec(java.util.List<KryoRegistrar> kryoRegistrars, boolean useReferences) package spring.xd.bus.ext; ... @Configuration public class CustomKryoRegistrarConfig { @Bean public KryoRegistrar myCustomRegistration() { List<Registration> registrations = new ArrayList<>(); registrations.add(new Registration(MyObject.class, new MySerializer(),62)); return new KryoRegistrationRegistrar(registrations); } } XD scans this package for beans of type KryoRegistrar Each Registration associates a type to a serializer and a unique ID
  • 23. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ Custom Serializers in XD 23 public class AddressSerializer extends Serializer<Address> { @Override public void write(Kryo kryo, Output output, Address address) { output.writeString(address.getStreet()); output.writeString(address.getCity()); output.writeString(address.getCountry()); } @Override public Address read(Kryo kryo, Input input, Class<Address> type) { return new Address(input.readString(),input.readString(),input.readString()); } }
  • 24. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ Serializable Domain Object 24 public class Address implements KryoSerializable { ... @Override public void write(Kryo kryo, Output output) { output.writeString(this.street); output.writeString(this.city); output.writeString(this.country); } @Override public void read(Kryo kryo, Input input) { this.street = input.readString(); this.city = input.readString(); this.country = input.readString(); } } • (+) Simple: This works out of the box with no additional configuration • (-) Requires access to source or wrapping • (-) Internal benchmarks indicate this is not as fast as
  • 25. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ Benchmarking Your Custom Serializers 25 Sample Results Ser (ns) Desr (ns) Baseline 2710.5 4590.9 Serializable Domain Object 1663.3 2579.1 Custom Serializers 1126.1 2873.8 The spring-xd-samples repo includes a serialization- benchmarks project • https://github.com/spring-projects/spring-xd- samples/tree/master/serialization-benchmarks Let’s look at some code…
  • 26. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ What about Processing ? • Source Msg/s > Sink Msg/s ? • Rate limited by Sink • Blocking transformation (http, file…) ? • Rate limited by blocking Processor • Polling Sources Pausing ? • Rate limited by small Prefetch properties 26
  • 27. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ Mitigating Cost of IO • Negative impact ? • Scale Out ? o Loosing Data Affinity (colocation…) o Network cost • Scale Up ? o Message passing Overhead o More In-Flight Data 27
  • 28. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ Mitigating Cost of IO • Negative impact ? • Scale Out ? o Loosing Data Affinity (colocation…) o Network cost • Scale Up ? o Message passing Overhead o More In-Flight Data 28
  • 29. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ Blocking IO 29
  • 30. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ Asynchronous IO 30
  • 31. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ Asynchronous IO • Mitigate temporarily slow processors/sink • Back to degraded mode when queue full • Async Hand-Off generates Garbage 31
  • 32. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ Reactor Core: Efficient Asynchronous • Trade-off Memory vs Garbage generation • Pre-Allocated Ring Buffer • Concurrent consuming without duplicating buffer content • Ring Buffer Consumer Sequences 32
  • 33. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ Ring What? 33
  • 34. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ Module Teasing 34 @EnableReactorModule(concurrency = 4) /* Invoke accept() 4 times */ public class Sample implements ReactiveProcessor<Message, Message> { @Override public void accept( Publisher<Message> messageStream, /* A Ring Buffer Consumer */ ReactiveOutput<Message> output) { /* A Channel Output bridge */ output.writeOutput(messageStream); } }
  • 35. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ Questions 35
  • 36. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ 36 Microservices to Fast Data John T. Davies Learn More. Stay Connected. @springcentral Spring.io/video
  • 37. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ 37
  • 38. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ USING THIS TEMPLATE 38
  • 39. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ STOP! Download Fonts Now. PLEASE DOWNLOAD AND INSTALL THESE FONTS BEFORE CREATING YOUR PRESENTATION. You can download the fonts here… https://www.dropbox.com/s/na8jewnsp8dp659/SpringOne-2015-Fonts.zip?dl=0 Fonts included in the ZIP file: • Proxima Nova (body text) • Domine (included but no longer needed) http://www.fontspring.com/support/installing/how-do-i-install-fonts-on-my-mac http://www.fontspring.com/support/installing/how-do-i-install-fonts-on-my-windows-pc 39
  • 40. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ Intro This template has been carefully prepared with specific layouts, colors, fonts and more. This short intro will outline the basic components of this template. Note: This template includes slides with approved color palette, fonts, logos and clip art. It’s a good idea to keep these slides in order to quickly access these assets then delete the slides when you have finished creating your presentation. 40
  • 41. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ Inserting New Slides and Applying Layouts • To create different types of slides, select New Slide and apply desired Layout • If you make formatting changes to a slide and want to reapply the default settings, click Reset 41
  • 42. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ Layouts There are 13 layouts • Title Only – Standard slide with no text content box, do not use for section title • Title and Content (1 Col) – Standard slide with title and text content box • Title and Content (2 Col) – Standard slide with title and two text content boxes • Comparison – Standard slide with title and two text content boxes with subtitles • Section Title – Use between sections • No text • Table – Quick and easy way to get a table with brand colors • Bar Chart – Quick and easy way to get a bar chart with brand colors • Line Chart – Quick and easy way to get a line chart with brand colors • Pie Chart – Quick and easy way to get a pie chart with brand colors • Code Formatting – Quick and easy way to get preferred code formatting • Title Slide – Presentation title with author name and contact info. Use only once in presentation. • Completely blank – A totally blank, white slide. Use sparingly. 42
  • 43. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ Title Proxima Nova Bold (30pt) • All body text is Proxima Nova Regular • Subhead (18pt) • Level Two (18pt) o Level Three (18pt) o Level Four (18pt) • Line spacing is set in master slides 43
  • 44. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ Brand Colors 44 R: 241 G: 241 B: 241 R: 153 G: 153 B: 153 R: 109 G: 179 B: 63 Spring Brand Colors R: 52 G: 48 B: 45 SpringOne 2GX 2015 Theme Colors R: 83 G: 83 B: 83 R: 12 G: 48 B: 100 R: 156 G: 209 B: 121 R: 204 G: 204 B: 204 R: 38 G: 97 B: 168 R: 114 G: 163 B: 211
  • 45. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ Code Slide 45 // This is Arial: 18 pt or higher please public class TransferServiceImpl implements TransferService { public TransferServiceImpl(AccountRepository ar) { this.accountRepository = ar; } … }
  • 46. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ 46 <Your CTA> <Related Session> Learn More. Stay Connected. @springcentral Spring.io/video
  • 47. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ Safe Harbor Statement The following is intended to outline the general direction of Pivotal's offerings. It is intended for information purposes only and may not be incorporated into any contract. Any information regarding pre-release of Pivotal offerings, future updates or other planned modifications is subject to ongoing evaluation by Pivotal and is subject to change. This information is provided without warranty or any kind, express or implied, and is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions regarding Pivotal's offerings. These purchasing decisions should only be based on features currently available. The development, release, and timing of any features or functionality described for Pivotal's offerings in this presentation remain at the sole discretion of Pivotal. Pivotal has no obligation to update forward looking information in this presentation. 47 If you are a pivotal employee and your talk contains forward facing information, please include this slide at the beginning or conclusion of the presentation. Remove this text box before presenting.
  • 48. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ LOGOS & ICONS 48
  • 49. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ Logos 49
  • 50. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ Event Logos and Icons 50 Logo on dark Logo on light Date logo on dark Date logo on light
  • 51. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ Spring Project Icons 51 Spring Framework Spring Security Spring Data Spring Batch Spring Integration Spring Reactor Spring AMQP Spring Hateoas Spring Mobile Spring Android Spring Social Groovy Spring Web Services Spring Web Flow Spring XD Spring Boot Spring LDAP Grails PNG and PSD files for all Spring projects can be found here… https://www.dropbox.com/sh/5rbbt8v6evvm7xm/AAAZmhgf0zglGHZUWYhPvojFa?dl=0
  • 52. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ Spring Tool Suite Icons 52 Spring Tool Suite Groovy / Grails Tool Suite
  • 53. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ Spring Document Icons 53 Spring Framework ToolsSupport Guides Reference AppTutorials
  • 54. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ Additional Spring Icons 54 Continuous Integration Metrics Forums / Discussion Blog @Issues All Author Broadcast Date News Event Releases Apple LinuxEngineering Windows Professional Support Community Support Location
  • 55. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ Icon Guidelines • These icons can be used when Spring icons are not appropriate. • Max icon size is 2.08 inches – anything larger and the icon will be blurry • Icons are transparent and can be placed over images and other objects • To use an icon, simply choose, copy and paste • 200x200 PNG files can be found here… https://www.dropbox.com/sh/wy65b4l5t4fv9 b4/AAD1LMHcOtwJSTbNu23zqywka?dl=0 55 Max icon size: 2.08 inches
  • 56. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ 56
  • 57. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ 57
  • 58. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ CHARTS & TABLES 58
  • 59. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ Sample Pie Chart 59 1st Qtr 2nd Qtr 3rd Qtr 4th Qtr
  • 60. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ Sample Bar Chart 60 0 23 45 68 90 113 1st Qtr 2nd Qtr 3rd Qtr 4th Qtr North South East West
  • 61. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ Sample Line Chart 61 0 23 45 68 90 113 1st Qtr 2nd Qtr 3rd Qtr 4th Qtr North South East West
  • 62. Unless otherwise indicated, these slides are © 2013 -2015 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by -nc/3.0/ Sample Table 62 2007 2008 2009 2010 Category 1 2.4 6.4 4.1 6.6 Category 2 8.2 4.5 3.2 3.8 Category 3 4.6 3.2 1.9 9.6 Category 4 6.7 3.3 3.4 2.2 Category 5 4.3 5.6 7.1 3.4