SlideShare a Scribd company logo
Protocol buffers and
Microservices
Vladimir Dejanović
Voxxed Days Bristol 02Mar2017
@VladimirD_42#VDB17
Let’s Meet
@VladimirD_42#VDB17
Agenda
@VladimirD_42#VDB17
Agenda
Before Protocol Buffers
@VladimirD_42#VDB17
Agenda
Before Protocol Buffers
Protocol Buffers
@VladimirD_42#VDB17
Agenda
Before Protocol Buffers
Protocol Buffers
Should I care about Protocol Buffers
@VladimirD_42#VDB17
Agenda
Before Protocol Buffers
Protocol Buffers
Should I care about Protocol Buffers
Questions
@VladimirD_42#VDB17
In the beginning there was a message
@VladimirD_42#VDB17
In the beginning there was a message
@VladimirD_42#VDB17
In the beginning there was a message
@VladimirD_42#VDB17
In the beginning there was a message
@VladimirD_42#VDB17
In the beginning there was a message
@VladimirD_42#VDB17
Message
In the beginning there was a message
@VladimirD_42#VDB17
Message
Message => Format
Fast Forward to 1996
@VladimirD_42#VDB17
Fast Forward to 1996
XML - Extensible Markup Language
@VladimirD_42#VDB17
Fast Forward to 1996
XML - Extensible Markup Language
@VladimirD_42#VDB17
Both Human-readable and Machine-readable
@VladimirD_42#VDB17
<attendee>
<firstName>John</firstName>
<lastName>Doe</lastName>
<address>
<city>Bristol</city>
<street>Canon's Road</street>
<number>1</number>
</address>
</attendee>
XML Example
@VladimirD_42#VDB17
<attendee>
<firstName>John</firstName>
<lastName>Doe</lastName>
<address>
<city>Bristol</city>
<street>Canon's Road</street>
<number>1</number>
</address>
</attendee>
XML Example
@VladimirD_42#VDB17
<attendee>
<firstName>John</firstName>
<lastName>Doe</lastName>
<address>
<city>Bristol</city>
<street>Canon's Road</street>
<number>1</number>
</address>
</attendee>
XML Example
@VladimirD_42#VDB17
<xsd:element name="attendee" type="AttendeeType"/>
<xsd:complexType name="AttendeeType">
<xsd:sequence>
<xsd:element name="firstName" type="xsd:string"/>
<xsd:element name="lastName" type="xsd:string"/>
<xsd:element name="address" type="AddressType"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="AddressType">
<xsd:sequence>
<xsd:element name="city" type="xsd:string"/>
<xsd:element name="street" type="xsd:string"/>
<xsd:element name="number" type="xsd:decimal"/>
</xsd:sequence>
</xsd:complexType>
@VladimirD_42#VDB17
<attendee>
<firstName>John</firstName>
<lastName>Doe</lastName>
<address>
<city>Bristol</city>
<street>Canon's Road</street>
<number>1</number>
</address>
</attendee>
XML Example
@VladimirD_42#VDB17
<attendee>
<firstName>John</firstName>
<lastName>Doe</lastName>
<address>
<city>Bristol</city>
<street>Canon's Road</street>
<number>1</number>
</address>
</attendee>
XML Example
159
@VladimirD_42#VDB17
<attendee>
<firstName>John</firstName>
<lastName>Doe</lastName>
<address>
<city>Bristol</city>
<street>Canon's Road</street>
<number>1</number>
</address>
</attendee>
XML Example
159
68
Fast Forward to 2000 ( sort of )
@VladimirD_42#VDB17
Fast Forward to 2000 ( sort of )
@VladimirD_42#VDB17
JSON
Fast Forward to 2000 ( sort of )
@VladimirD_42#VDB17
JSON
“JavaScript Object Notation” (sometimes)
Fast Forward to 2000 ( sort of )
@VladimirD_42#VDB17
JSON
“JavaScript Object Notation” (sometimes)
Both Human-readable and Machine-readable
Fast Forward to 2000 ( sort of )
@VladimirD_42#VDB17
JSON
“JavaScript Object Notation” (sometimes)
Both Human-readable and Machine-readable
Developer Friendly
JSON Example
@VladimirD_42#VDB17
{
firstName : "John",
lastName: "Doe",
address: {
city: "Bristol",
street: "Canon's Road",
number: 1
}
}
JSON Example
@VladimirD_42#VDB17
{
firstName : "John",
lastName: "Doe",
address: {
city: "Bristol",
street: "Canon's Road",
number: 1
}
}
90 vs 159
JSON Example
@VladimirD_42#VDB17
{
firstName : "John",
lastName: "Doe",
address: {
city: "Bristol",
street: "Canon's Road",
number: 1
}
}
90 vs 159
68
No JSON Schema
@VladimirD_42#VDB17
No JSON Schema
@VladimirD_42#VDB17
JSON Schema is an Internet Draft currently
in its 5th version, which was released on
October 13, 2016
No JSON Schema
@VladimirD_42#VDB17
JSON Schema is an Internet Draft currently
in its 5th version, which was released on
October 13, 2016
http://json-schema.org/latest/json-schema-core.html
Fast Forward some more ….
@VladimirD_42#VDB17
Fast Forward some more ….
@VladimirD_42#VDB17
Welcome to Microservice Era
Fast Forward some more ….
@VladimirD_42#VDB17
Welcome to Microservice Era (Present Time)
Fast Forward some more ….
@VladimirD_42#VDB17
Welcome to Microservice Era
Monolith is OUT
(Present Time)
Fast Forward some more ….
@VladimirD_42#VDB17
Welcome to Microservice Era
Micro is IN
Monolith is OUT
(Present Time)
In the Nutshell
@VladimirD_42#VDB17
In the Nutshell
@VladimirD_42#VDB17
In the Nutshell
@VladimirD_42#VDB17
In the Nutshell
@VladimirD_42#VDB17
Network Call, Message and Format
@VladimirD_42#VDB17
Network Call, Message and Format
@VladimirD_42#VDB17
Which format should we use
Network Call, Message and Format
@VladimirD_42#VDB17
Which format should we use
XML or JSON
XML vs JSON
@VladimirD_42#VDB17
XML vs JSON
@VladimirD_42#VDB17
XML - security for valid messages ( XSD )
XML vs JSON
@VladimirD_42#VDB17
XML - security for valid messages ( XSD )
JSON - we hope all messages will be good
XML vs JSON
@VladimirD_42#VDB17
XML - potentially huge size
XML vs JSON
@VladimirD_42#VDB17
XML - potentially huge size
JSON - smaller size
XML vs JSON
@VladimirD_42#VDB17
High traffic Financial system
XML vs JSON
@VladimirD_42#VDB17
Most systems with high traffic
and not “critical” data
New Contender
@VladimirD_42#VDB17
New Contender
@VladimirD_42#VDB17
Protocol Buffers
New Contender
@VladimirD_42#VDB17
Protocol Buffers
Google public release V2 in 2008
Protocol Buffer
@VladimirD_42#VDB17
Protocol Buffer
@VladimirD_42#VDB17
Protocol buffers are a flexible, efficient,
automated mechanism for serializing
structured data – think XML, but smaller, faster,
and simpler.
Protocol Buffer
@VladimirD_42#VDB17
Protocol buffers are a flexible, efficient,
automated mechanism for serializing
structured data – think XML, but smaller,
faster, and simpler.
Protocol Buffer
@VladimirD_42#VDB17
Generate Code
$ protoc --java_out=src_dir attendee.proto
@VladimirD_42#VDB17
@VladimirD_42#VDB17
syntax = "proto2";
package voxxed.bristol;
option java_package = "com.voxxed.bristol.pojo";
option java_outer_classname = "AttendeeProto";
message Attendee {
required string first_name = 1;
required string last_name = 2;
message Address {
required string city = 1;
required string street = 2;
required int32 number = 3;
}
optional Address address = 3;
}
@VladimirD_42#VDB17
syntax = "proto2";
package voxxed.bristol;
option java_package = "com.voxxed.bristol.pojo";
option java_outer_classname = "AttendeeProto";
message Attendee {
required string first_name = 1;
required string last_name = 2;
message Address {
required string city = 1;
required string street = 2;
required int32 number = 3;
}
optional Address address = 3;
}
@VladimirD_42#VDB17
syntax = "proto2";
package voxxed.bristol;
option java_package = "com.voxxed.bristol.pojo";
option java_outer_classname = "AttendeeProto";
message Attendee {
required string first_name = 1;
required string last_name = 2;
message Address {
required string city = 1;
required string street = 2;
required int32 number = 3;
}
optional Address address = 3;
}
@VladimirD_42#VDB17
syntax = "proto2";
package voxxed.bristol;
option java_package = "com.voxxed.bristol.pojo";
option java_outer_classname = "AttendeeProto";
message Attendee {
required string first_name = 1;
required string last_name = 2;
message Address {
required string city = 1;
required string street = 2;
required int32 number = 3;
}
optional Address address = 3;
}
@VladimirD_42#VDB17
syntax = "proto2";
package voxxed.bristol;
option java_package = "com.voxxed.bristol.pojo";
option java_outer_classname = "AttendeeProto";
message Attendee {
required string first_name = 1;
required string last_name = 2;
message Address {
required string city = 1;
required string street = 2;
required int32 number = 3;
}
optional Address address = 3;
}
@VladimirD_42#VDB17
syntax = "proto2";
package voxxed.bristol;
option java_package = "com.voxxed.bristol.pojo";
option java_outer_classname = "AttendeeProto";
message Attendee {
required string first_name = 1;
required string last_name = 2;
message Address {
required string city = 1;
required string street = 2;
required int32 number = 3;
}
optional Address address = 3;
}
@VladimirD_42#VDB17
syntax = "proto2";
package voxxed.bristol;
option java_package = "com.voxxed.bristol.pojo";
option java_outer_classname = "AttendeeProto";
message Attendee {
required string first_name = 1;
required string last_name = 2;
message Address {
required string city = 1;
required string street = 2;
required int32 number = 3;
}
optional Address address = 3;
}
@VladimirD_42#VDB17
syntax = "proto2";
package voxxed.bristol;
option java_package = "com.voxxed.bristol.pojo";
option java_outer_classname = "AttendeeProto";
message Attendee {
required string first_name = 1;
required string last_name = 2;
message Address {
required string city = 1;
required string street = 2;
required int32 number = 3;
}
optional Address address = 3;
}
@VladimirD_42#VDB17
syntax = "proto2";
package voxxed.bristol;
option java_package = "com.voxxed.bristol.pojo";
option java_outer_classname = "AttendeeProto";
message Attendee {
required string first_name = 1;
required string last_name = 2;
message Address {
required string city = 1;
required string street = 2;
required int32 number = 3;
}
optional Address address = 3;
}
@VladimirD_42#VDB17
syntax = "proto2";
package voxxed.bristol;
option java_package = "com.voxxed.bristol.pojo";
option java_outer_classname = "AttendeeProto";
message Attendee {
required string first_name = 1;
required string last_name = 2;
message Address {
required string city = 1;
required string street = 2;
required int32 number = 3;
}
optional Address address = 3;
}
@VladimirD_42#VDB17
syntax = "proto2";
package voxxed.bristol;
option java_package = "com.voxxed.bristol.pojo";
option java_outer_classname = "AttendeeProto";
message Attendee {
required string first_name = 1;
required string last_name = 2;
message Address {
required string city = 1;
required string street = 2;
required int32 number = 3;
}
optional Address address = 3;
}
@VladimirD_42#VDB17
syntax = "proto2";
package voxxed.bristol;
option java_package = "com.voxxed.bristol.pojo";
option java_outer_classname = "AttendeeProto";
message Attendee {
required string first_name = 1;
required string last_name = 2;
message Address {
required string city = 1;
required string street = 2;
required int32 number = 3;
}
optional Address address = 3;
}
@VladimirD_42#VDB17
syntax = "proto2";
package voxxed.bristol;
option java_package = "com.voxxed.bristol.pojo";
option java_outer_classname = "AttendeeProto";
message Attendee {
required string first_name = 1;
required string last_name = 2;
message Address {
required string city = 1;
required string street = 2;
required int32 number = 3;
}
optional Address address = 3;
}
@VladimirD_42#VDB17
syntax = "proto2";
package voxxed.bristol;
option java_package = "com.voxxed.bristol.pojo";
option java_outer_classname = "AttendeeProto";
message Attendee {
required string first_name = 1;
required string last_name = 2;
message Address {
required string city = 1;
required string street = 2;
required int32 number = 3;
}
optional Address address = 3;
}
Generated Code
Message Classes are all immutable
@VladimirD_42#VDB17
Generated Code
Each Message Class has Builder
@VladimirD_42#VDB17
Generated Code
static Attendee parseFrom(byte[] data)
static Attendee parseFrom(InputStream input)
@VladimirD_42#VDB17
Generated Code
byte[] toByteArray()
void writeTo(OutputStream output)
@VladimirD_42#VDB17
Backward Compatibility Don'ts
@VladimirD_42#VDB17
Backward Compatibility Don'ts
Change the tag numbers of any existing fields
@VladimirD_42#VDB17
Backward Compatibility Don'ts
Change the tag numbers of any existing fields
Add or Delete any required fields
@VladimirD_42#VDB17
Backward Compatibility Do's
@VladimirD_42#VDB17
Backward Compatibility Do's
Delete optional or repeated fields.
@VladimirD_42#VDB17
Backward Compatibility Do's
Delete optional or repeated fields.
Add new optional or repeated fields
@VladimirD_42#VDB17
Backward Compatibility Do's
Delete optional or repeated fields.
Add new optional or repeated fields
(But you must use fresh tag numbers )
@VladimirD_42#VDB17
Demo
@VladimirD_42#VDB17
Conclusion
@VladimirD_42#VDB17
Conclusion
JSON and XML are Human friendly
@VladimirD_42#VDB17
Conclusion
JSON and XML are Human friendly
@VladimirD_42#VDB17
Protocol Buffers proto file needed
Conclusion
Protocol Buffers compact and fast
@VladimirD_42#VDB17
Conclusion
Protocol Buffers compact and fast
@VladimirD_42#VDB17
JSON is everywhere
Conclusion
Protocol Buffers vs JSON
@VladimirD_42#VDB17
Conclusion
Protocol Buffers vs JSON
@VladimirD_42#VDB17
Protocol Buffers vs XML
Conclusion
Protocol Buffers would not be a good way to
model a text-based document with markup
@VladimirD_42#VDB17
Questions
@VladimirD_42
ed.wong.iv@gmail.com
@VladimirD_42#VDB17
Thank You
@VladimirD_42#VDB17

More Related Content

What's hot

Seguridad en microservicios via micro profile jwt
Seguridad en microservicios via micro profile jwtSeguridad en microservicios via micro profile jwt
Seguridad en microservicios via micro profile jwt
César Hernández
 
Stateless Microservice Security via JWT and MicroProfile - Mexico
Stateless Microservice Security via JWT and MicroProfile - MexicoStateless Microservice Security via JWT and MicroProfile - Mexico
Stateless Microservice Security via JWT and MicroProfile - Mexico
Otávio Santana
 
Stateless Microservice Security via JWT and MicroProfile - ES
Stateless Microservice Security via JWT and MicroProfile - ES Stateless Microservice Security via JWT and MicroProfile - ES
Stateless Microservice Security via JWT and MicroProfile - ES
Otavio Santana
 
Stateless Microservice Security via JWT and MicroProfile - Guatemala
Stateless Microservice Security via JWT and MicroProfile - GuatemalaStateless Microservice Security via JWT and MicroProfile - Guatemala
Stateless Microservice Security via JWT and MicroProfile - Guatemala
Otávio Santana
 
Consensus in Polkadot - 20190624
Consensus in Polkadot - 20190624Consensus in Polkadot - 20190624
Consensus in Polkadot - 20190624
Joe Petrowski
 
Hash crypto
Hash cryptoHash crypto
Hash crypto
Harry Potter
 
DEF CON 27 - GERALD DOUSSOT AND ROGER MEYER - state of dns rebinding attack ...
DEF CON 27 - GERALD DOUSSOT  AND ROGER MEYER - state of dns rebinding attack ...DEF CON 27 - GERALD DOUSSOT  AND ROGER MEYER - state of dns rebinding attack ...
DEF CON 27 - GERALD DOUSSOT AND ROGER MEYER - state of dns rebinding attack ...
Felipe Prado
 
Common Browser Hijacking Methods
Common Browser Hijacking MethodsCommon Browser Hijacking Methods
Common Browser Hijacking Methods
David Barroso
 
Iaetsd enhanced cryptography algorithm for providing
Iaetsd enhanced cryptography algorithm for providingIaetsd enhanced cryptography algorithm for providing
Iaetsd enhanced cryptography algorithm for providing
Iaetsd Iaetsd
 
Basics of GnuPG (gpg) command in linux
Basics of GnuPG (gpg) command in linuxBasics of GnuPG (gpg) command in linux
Basics of GnuPG (gpg) command in linux
Sanjeev Kumar Jaiswal
 
Distributed Consensus: Making Impossible Possible
Distributed Consensus: Making Impossible PossibleDistributed Consensus: Making Impossible Possible
Distributed Consensus: Making Impossible Possible
Heidi Howard
 
AREA41 - Anatomy of attacks aimed at financial sector by the Lazarus group
AREA41 - Anatomy of attacks aimed at financial sector by the Lazarus groupAREA41 - Anatomy of attacks aimed at financial sector by the Lazarus group
AREA41 - Anatomy of attacks aimed at financial sector by the Lazarus group
SeongsuPark8
 
Curl with rust
Curl with rustCurl with rust
Curl with rust
Daniel Stenberg
 
[2020-09-01] IIBMP2020 Generating annotation texts of HLA sequences with anti...
[2020-09-01] IIBMP2020 Generating annotation texts of HLA sequences with anti...[2020-09-01] IIBMP2020 Generating annotation texts of HLA sequences with anti...
[2020-09-01] IIBMP2020 Generating annotation texts of HLA sequences with anti...
Eli Kaminuma
 
HES2011 - Gabriel Gonzalez - Man In Remote PKCS11 for fun and non profit
HES2011 - Gabriel Gonzalez - Man In Remote PKCS11 for fun and non profitHES2011 - Gabriel Gonzalez - Man In Remote PKCS11 for fun and non profit
HES2011 - Gabriel Gonzalez - Man In Remote PKCS11 for fun and non profit
Hackito Ergo Sum
 
The state of curl 2020
The state of curl 2020The state of curl 2020
The state of curl 2020
Daniel Stenberg
 
5.[29 38]a practical approach for implementation of public key infrastructure...
5.[29 38]a practical approach for implementation of public key infrastructure...5.[29 38]a practical approach for implementation of public key infrastructure...
5.[29 38]a practical approach for implementation of public key infrastructure...
Alexander Decker
 

What's hot (17)

Seguridad en microservicios via micro profile jwt
Seguridad en microservicios via micro profile jwtSeguridad en microservicios via micro profile jwt
Seguridad en microservicios via micro profile jwt
 
Stateless Microservice Security via JWT and MicroProfile - Mexico
Stateless Microservice Security via JWT and MicroProfile - MexicoStateless Microservice Security via JWT and MicroProfile - Mexico
Stateless Microservice Security via JWT and MicroProfile - Mexico
 
Stateless Microservice Security via JWT and MicroProfile - ES
Stateless Microservice Security via JWT and MicroProfile - ES Stateless Microservice Security via JWT and MicroProfile - ES
Stateless Microservice Security via JWT and MicroProfile - ES
 
Stateless Microservice Security via JWT and MicroProfile - Guatemala
Stateless Microservice Security via JWT and MicroProfile - GuatemalaStateless Microservice Security via JWT and MicroProfile - Guatemala
Stateless Microservice Security via JWT and MicroProfile - Guatemala
 
Consensus in Polkadot - 20190624
Consensus in Polkadot - 20190624Consensus in Polkadot - 20190624
Consensus in Polkadot - 20190624
 
Hash crypto
Hash cryptoHash crypto
Hash crypto
 
DEF CON 27 - GERALD DOUSSOT AND ROGER MEYER - state of dns rebinding attack ...
DEF CON 27 - GERALD DOUSSOT  AND ROGER MEYER - state of dns rebinding attack ...DEF CON 27 - GERALD DOUSSOT  AND ROGER MEYER - state of dns rebinding attack ...
DEF CON 27 - GERALD DOUSSOT AND ROGER MEYER - state of dns rebinding attack ...
 
Common Browser Hijacking Methods
Common Browser Hijacking MethodsCommon Browser Hijacking Methods
Common Browser Hijacking Methods
 
Iaetsd enhanced cryptography algorithm for providing
Iaetsd enhanced cryptography algorithm for providingIaetsd enhanced cryptography algorithm for providing
Iaetsd enhanced cryptography algorithm for providing
 
Basics of GnuPG (gpg) command in linux
Basics of GnuPG (gpg) command in linuxBasics of GnuPG (gpg) command in linux
Basics of GnuPG (gpg) command in linux
 
Distributed Consensus: Making Impossible Possible
Distributed Consensus: Making Impossible PossibleDistributed Consensus: Making Impossible Possible
Distributed Consensus: Making Impossible Possible
 
AREA41 - Anatomy of attacks aimed at financial sector by the Lazarus group
AREA41 - Anatomy of attacks aimed at financial sector by the Lazarus groupAREA41 - Anatomy of attacks aimed at financial sector by the Lazarus group
AREA41 - Anatomy of attacks aimed at financial sector by the Lazarus group
 
Curl with rust
Curl with rustCurl with rust
Curl with rust
 
[2020-09-01] IIBMP2020 Generating annotation texts of HLA sequences with anti...
[2020-09-01] IIBMP2020 Generating annotation texts of HLA sequences with anti...[2020-09-01] IIBMP2020 Generating annotation texts of HLA sequences with anti...
[2020-09-01] IIBMP2020 Generating annotation texts of HLA sequences with anti...
 
HES2011 - Gabriel Gonzalez - Man In Remote PKCS11 for fun and non profit
HES2011 - Gabriel Gonzalez - Man In Remote PKCS11 for fun and non profitHES2011 - Gabriel Gonzalez - Man In Remote PKCS11 for fun and non profit
HES2011 - Gabriel Gonzalez - Man In Remote PKCS11 for fun and non profit
 
The state of curl 2020
The state of curl 2020The state of curl 2020
The state of curl 2020
 
5.[29 38]a practical approach for implementation of public key infrastructure...
5.[29 38]a practical approach for implementation of public key infrastructure...5.[29 38]a practical approach for implementation of public key infrastructure...
5.[29 38]a practical approach for implementation of public key infrastructure...
 

Viewers also liked

Pain of growing up, and moving to large scale
Pain of growing up, and moving to large scalePain of growing up, and moving to large scale
Pain of growing up, and moving to large scale
Vladimir Dejanovic
 
Buffers for biochemical reactions
Buffers for biochemical reactionsBuffers for biochemical reactions
Buffers for biochemical reactions
Dr. sreeremya S
 
Jericho Attack Technique
Jericho Attack TechniqueJericho Attack Technique
Jericho Attack Technique
Jan Seidl
 
Tipos de búsqueda de Internet
Tipos de búsqueda de Internet Tipos de búsqueda de Internet
Tipos de búsqueda de Internet
albert yara
 
Mejores radios en linea
Mejores radios en lineaMejores radios en linea
Mejores radios en linea
Radio buenos aires
 
Micro, Nano, Mono? Microservices verständlich erklärt
Micro, Nano, Mono? Microservices verständlich erklärtMicro, Nano, Mono? Microservices verständlich erklärt
Micro, Nano, Mono? Microservices verständlich erklärt
IKS Gesellschaft für Informations- und Kommunikationssysteme mbH
 
Canary releases & Blue green deployment
Canary releases & Blue green deploymentCanary releases & Blue green deployment
Canary releases & Blue green deployment
SQUADEX
 
I garza actividad 4_consideraciones para el diseño didáctico ava.docx
I garza actividad 4_consideraciones para el diseño didáctico ava.docxI garza actividad 4_consideraciones para el diseño didáctico ava.docx
I garza actividad 4_consideraciones para el diseño didáctico ava.docx
Irma Garza
 
Metrics driven dev ops 2017
Metrics driven dev ops 2017Metrics driven dev ops 2017
Metrics driven dev ops 2017
Jerry Tan
 
Microservice Builder: A Microservice DevOps Pipeline for Rapid Delivery and P...
Microservice Builder: A Microservice DevOps Pipeline for Rapid Delivery and P...Microservice Builder: A Microservice DevOps Pipeline for Rapid Delivery and P...
Microservice Builder: A Microservice DevOps Pipeline for Rapid Delivery and P...
David Currie
 
Canary Analyze All The Things: How We Learned to Keep Calm and Release Often
Canary Analyze All The Things: How We Learned to Keep Calm and Release OftenCanary Analyze All The Things: How We Learned to Keep Calm and Release Often
Canary Analyze All The Things: How We Learned to Keep Calm and Release Often
C4Media
 
Data-driven HAL generation
Data-driven HAL generationData-driven HAL generation
Data-driven HAL generation
emBO_Conference
 
Deployment Automation with Microservices
Deployment Automation with MicroservicesDeployment Automation with Microservices
Deployment Automation with Microservices
Ganesh Ghag
 
TechTalk: Reduce Risk with Canary Deployments
TechTalk: Reduce Risk with Canary DeploymentsTechTalk: Reduce Risk with Canary Deployments
TechTalk: Reduce Risk with Canary Deployments
CA Technologies
 
CloudConf2017 - Deploy, Scale & Coordinate a microservice oriented application
CloudConf2017 - Deploy, Scale & Coordinate a microservice oriented applicationCloudConf2017 - Deploy, Scale & Coordinate a microservice oriented application
CloudConf2017 - Deploy, Scale & Coordinate a microservice oriented application
Corley S.r.l.
 
Ejes y Arboles de Trasmision
Ejes y Arboles de TrasmisionEjes y Arboles de Trasmision
Ejes y Arboles de Trasmision
Luis Chirinos
 
JUG - Soup to Nuts with Self Contained Systems
JUG - Soup to Nuts with Self Contained SystemsJUG - Soup to Nuts with Self Contained Systems
JUG - Soup to Nuts with Self Contained Systems
Donovan Muller
 
Lec 9 level 4-de (biological buffer)
Lec 9 level 4-de (biological buffer)Lec 9 level 4-de (biological buffer)
Lec 9 level 4-de (biological buffer)
dream10f
 
Auth as a microservice
Auth as a microserviceAuth as a microservice
Auth as a microservice
Brian Pontarelli
 

Viewers also liked (20)

Pain of growing up, and moving to large scale
Pain of growing up, and moving to large scalePain of growing up, and moving to large scale
Pain of growing up, and moving to large scale
 
Buffers for biochemical reactions
Buffers for biochemical reactionsBuffers for biochemical reactions
Buffers for biochemical reactions
 
Jericho Attack Technique
Jericho Attack TechniqueJericho Attack Technique
Jericho Attack Technique
 
Tipos de búsqueda de Internet
Tipos de búsqueda de Internet Tipos de búsqueda de Internet
Tipos de búsqueda de Internet
 
Mejores radios en linea
Mejores radios en lineaMejores radios en linea
Mejores radios en linea
 
Edwing oliveros
Edwing oliverosEdwing oliveros
Edwing oliveros
 
Micro, Nano, Mono? Microservices verständlich erklärt
Micro, Nano, Mono? Microservices verständlich erklärtMicro, Nano, Mono? Microservices verständlich erklärt
Micro, Nano, Mono? Microservices verständlich erklärt
 
Canary releases & Blue green deployment
Canary releases & Blue green deploymentCanary releases & Blue green deployment
Canary releases & Blue green deployment
 
I garza actividad 4_consideraciones para el diseño didáctico ava.docx
I garza actividad 4_consideraciones para el diseño didáctico ava.docxI garza actividad 4_consideraciones para el diseño didáctico ava.docx
I garza actividad 4_consideraciones para el diseño didáctico ava.docx
 
Metrics driven dev ops 2017
Metrics driven dev ops 2017Metrics driven dev ops 2017
Metrics driven dev ops 2017
 
Microservice Builder: A Microservice DevOps Pipeline for Rapid Delivery and P...
Microservice Builder: A Microservice DevOps Pipeline for Rapid Delivery and P...Microservice Builder: A Microservice DevOps Pipeline for Rapid Delivery and P...
Microservice Builder: A Microservice DevOps Pipeline for Rapid Delivery and P...
 
Canary Analyze All The Things: How We Learned to Keep Calm and Release Often
Canary Analyze All The Things: How We Learned to Keep Calm and Release OftenCanary Analyze All The Things: How We Learned to Keep Calm and Release Often
Canary Analyze All The Things: How We Learned to Keep Calm and Release Often
 
Data-driven HAL generation
Data-driven HAL generationData-driven HAL generation
Data-driven HAL generation
 
Deployment Automation with Microservices
Deployment Automation with MicroservicesDeployment Automation with Microservices
Deployment Automation with Microservices
 
TechTalk: Reduce Risk with Canary Deployments
TechTalk: Reduce Risk with Canary DeploymentsTechTalk: Reduce Risk with Canary Deployments
TechTalk: Reduce Risk with Canary Deployments
 
CloudConf2017 - Deploy, Scale & Coordinate a microservice oriented application
CloudConf2017 - Deploy, Scale & Coordinate a microservice oriented applicationCloudConf2017 - Deploy, Scale & Coordinate a microservice oriented application
CloudConf2017 - Deploy, Scale & Coordinate a microservice oriented application
 
Ejes y Arboles de Trasmision
Ejes y Arboles de TrasmisionEjes y Arboles de Trasmision
Ejes y Arboles de Trasmision
 
JUG - Soup to Nuts with Self Contained Systems
JUG - Soup to Nuts with Self Contained SystemsJUG - Soup to Nuts with Self Contained Systems
JUG - Soup to Nuts with Self Contained Systems
 
Lec 9 level 4-de (biological buffer)
Lec 9 level 4-de (biological buffer)Lec 9 level 4-de (biological buffer)
Lec 9 level 4-de (biological buffer)
 
Auth as a microservice
Auth as a microserviceAuth as a microservice
Auth as a microservice
 

Similar to Protocol buffers and Microservices

Analysis of an OSS supply chain attack - How did 8 millions developers downlo...
Analysis of an OSS supply chain attack - How did 8 millions developers downlo...Analysis of an OSS supply chain attack - How did 8 millions developers downlo...
Analysis of an OSS supply chain attack - How did 8 millions developers downlo...
Jarrod Overson
 
Testable Code
Testable CodeTestable Code
Testable Code
linghuazhang
 
Midgard2 - Content Repository for mobile applications
Midgard2 - Content Repository for mobile applicationsMidgard2 - Content Repository for mobile applications
Midgard2 - Content Repository for mobile applications
Henri Bergius
 
GraphQL vs Traditional Rest API
GraphQL vs Traditional Rest APIGraphQL vs Traditional Rest API
GraphQL vs Traditional Rest API
Vladimir Dejanovic
 
richard-rodger-awssofia-microservices-2019.pdf
richard-rodger-awssofia-microservices-2019.pdfrichard-rodger-awssofia-microservices-2019.pdf
richard-rodger-awssofia-microservices-2019.pdf
Richard Rodger
 
BizTalk Server Teach me something new about Flat Files (or not)
BizTalk Server Teach me something new about Flat Files (or not)BizTalk Server Teach me something new about Flat Files (or not)
BizTalk Server Teach me something new about Flat Files (or not)
BizTalk360
 
Cluj JSHeroes 2017 - Liran Tal on Node.js Security
Cluj JSHeroes 2017 - Liran Tal on Node.js SecurityCluj JSHeroes 2017 - Liran Tal on Node.js Security
Cluj JSHeroes 2017 - Liran Tal on Node.js Security
Liran Tal
 
Schema design short
Schema design shortSchema design short
Schema design short
MongoDB
 
Trying SPARQL Anything with MEI
Trying SPARQL Anything with MEITrying SPARQL Anything with MEI
Trying SPARQL Anything with MEI
Enrico Daga
 
REST API vs gRPC, which one should you use in breaking a monolith [Kdg.net 2018]
REST API vs gRPC, which one should you use in breaking a monolith [Kdg.net 2018]REST API vs gRPC, which one should you use in breaking a monolith [Kdg.net 2018]
REST API vs gRPC, which one should you use in breaking a monolith [Kdg.net 2018]
Vladimir Dejanovic
 
Intro to MongoDB and datamodeling
Intro to MongoDB and datamodeling Intro to MongoDB and datamodeling
Intro to MongoDB and datamodeling
rogerbodamer
 

Similar to Protocol buffers and Microservices (11)

Analysis of an OSS supply chain attack - How did 8 millions developers downlo...
Analysis of an OSS supply chain attack - How did 8 millions developers downlo...Analysis of an OSS supply chain attack - How did 8 millions developers downlo...
Analysis of an OSS supply chain attack - How did 8 millions developers downlo...
 
Testable Code
Testable CodeTestable Code
Testable Code
 
Midgard2 - Content Repository for mobile applications
Midgard2 - Content Repository for mobile applicationsMidgard2 - Content Repository for mobile applications
Midgard2 - Content Repository for mobile applications
 
GraphQL vs Traditional Rest API
GraphQL vs Traditional Rest APIGraphQL vs Traditional Rest API
GraphQL vs Traditional Rest API
 
richard-rodger-awssofia-microservices-2019.pdf
richard-rodger-awssofia-microservices-2019.pdfrichard-rodger-awssofia-microservices-2019.pdf
richard-rodger-awssofia-microservices-2019.pdf
 
BizTalk Server Teach me something new about Flat Files (or not)
BizTalk Server Teach me something new about Flat Files (or not)BizTalk Server Teach me something new about Flat Files (or not)
BizTalk Server Teach me something new about Flat Files (or not)
 
Cluj JSHeroes 2017 - Liran Tal on Node.js Security
Cluj JSHeroes 2017 - Liran Tal on Node.js SecurityCluj JSHeroes 2017 - Liran Tal on Node.js Security
Cluj JSHeroes 2017 - Liran Tal on Node.js Security
 
Schema design short
Schema design shortSchema design short
Schema design short
 
Trying SPARQL Anything with MEI
Trying SPARQL Anything with MEITrying SPARQL Anything with MEI
Trying SPARQL Anything with MEI
 
REST API vs gRPC, which one should you use in breaking a monolith [Kdg.net 2018]
REST API vs gRPC, which one should you use in breaking a monolith [Kdg.net 2018]REST API vs gRPC, which one should you use in breaking a monolith [Kdg.net 2018]
REST API vs gRPC, which one should you use in breaking a monolith [Kdg.net 2018]
 
Intro to MongoDB and datamodeling
Intro to MongoDB and datamodeling Intro to MongoDB and datamodeling
Intro to MongoDB and datamodeling
 

More from Vladimir Dejanovic

What limitations & problems of REST API can be solved with GraphQL [jPrime 2019]
What limitations & problems of REST API can be solved with GraphQL [jPrime 2019]What limitations & problems of REST API can be solved with GraphQL [jPrime 2019]
What limitations & problems of REST API can be solved with GraphQL [jPrime 2019]
Vladimir Dejanovic
 
Micronaut, Dragon-Slayer (Spring/boot) or just another framework [GeeCON Krak...
Micronaut, Dragon-Slayer (Spring/boot) or just another framework [GeeCON Krak...Micronaut, Dragon-Slayer (Spring/boot) or just another framework [GeeCON Krak...
Micronaut, Dragon-Slayer (Spring/boot) or just another framework [GeeCON Krak...
Vladimir Dejanovic
 
GraphQL in Java World [Workshop RivieraDev 2019]
GraphQL in Java World [Workshop RivieraDev 2019]GraphQL in Java World [Workshop RivieraDev 2019]
GraphQL in Java World [Workshop RivieraDev 2019]
Vladimir Dejanovic
 
GraphQL vs Traditional Rest API [GeeCon Prague 2018]
GraphQL vs Traditional Rest API [GeeCon Prague 2018]GraphQL vs Traditional Rest API [GeeCon Prague 2018]
GraphQL vs Traditional Rest API [GeeCon Prague 2018]
Vladimir Dejanovic
 
What Users Want, A/B testing explained [CodeteCon 2018]
What Users Want, A/B testing explained [CodeteCon 2018]What Users Want, A/B testing explained [CodeteCon 2018]
What Users Want, A/B testing explained [CodeteCon 2018]
Vladimir Dejanovic
 
REST API vs gRPC, which one should you use in breaking a monolith [Dev conf 2...
REST API vs gRPC, which one should you use in breaking a monolith [Dev conf 2...REST API vs gRPC, which one should you use in breaking a monolith [Dev conf 2...
REST API vs gRPC, which one should you use in breaking a monolith [Dev conf 2...
Vladimir Dejanovic
 
GeeCON 2018 GraphQL vs Traditional REST API
GeeCON 2018 GraphQL vs Traditional REST APIGeeCON 2018 GraphQL vs Traditional REST API
GeeCON 2018 GraphQL vs Traditional REST API
Vladimir Dejanovic
 
Java Day Istanbul 2018 GraphQL vs Traditional REST API
Java Day Istanbul 2018 GraphQL vs Traditional REST APIJava Day Istanbul 2018 GraphQL vs Traditional REST API
Java Day Istanbul 2018 GraphQL vs Traditional REST API
Vladimir Dejanovic
 
Devoxx France 2018 GraphQL vs Traditional REST API
Devoxx France 2018 GraphQL vs Traditional REST APIDevoxx France 2018 GraphQL vs Traditional REST API
Devoxx France 2018 GraphQL vs Traditional REST API
Vladimir Dejanovic
 
Java land What Users Want, A/B testing explained
Java land What Users Want, A/B testing explainedJava land What Users Want, A/B testing explained
Java land What Users Want, A/B testing explained
Vladimir Dejanovic
 
JavaLand gRPC vs REST API
JavaLand gRPC vs REST APIJavaLand gRPC vs REST API
JavaLand gRPC vs REST API
Vladimir Dejanovic
 
Java One Secret of developing high performance website, with no budget
Java One Secret of developing high performance website, with no budgetJava One Secret of developing high performance website, with no budget
Java One Secret of developing high performance website, with no budget
Vladimir Dejanovic
 
Voxxed Days Belgrade - Changing wheels on moving car, from monolith to micros...
Voxxed Days Belgrade - Changing wheels on moving car, from monolith to micros...Voxxed Days Belgrade - Changing wheels on moving car, from monolith to micros...
Voxxed Days Belgrade - Changing wheels on moving car, from monolith to micros...
Vladimir Dejanovic
 
What users want [DevoxxPL]
What users want [DevoxxPL]What users want [DevoxxPL]
What users want [DevoxxPL]
Vladimir Dejanovic
 
Secret of developing high performance website, with no budget in small amount...
Secret of developing high performance website, with no budget in small amount...Secret of developing high performance website, with no budget in small amount...
Secret of developing high performance website, with no budget in small amount...
Vladimir Dejanovic
 
Changing wheels on moving car, from monolith to microservices by using api's V2
Changing wheels on moving car, from monolith to microservices by using api's V2Changing wheels on moving car, from monolith to microservices by using api's V2
Changing wheels on moving car, from monolith to microservices by using api's V2
Vladimir Dejanovic
 
Changing wheels on moving car, from monolith to microservices by using api's
Changing wheels on moving car, from monolith to microservices by using api'sChanging wheels on moving car, from monolith to microservices by using api's
Changing wheels on moving car, from monolith to microservices by using api's
Vladimir Dejanovic
 
What users want
What users wantWhat users want
What users want
Vladimir Dejanovic
 

More from Vladimir Dejanovic (18)

What limitations & problems of REST API can be solved with GraphQL [jPrime 2019]
What limitations & problems of REST API can be solved with GraphQL [jPrime 2019]What limitations & problems of REST API can be solved with GraphQL [jPrime 2019]
What limitations & problems of REST API can be solved with GraphQL [jPrime 2019]
 
Micronaut, Dragon-Slayer (Spring/boot) or just another framework [GeeCON Krak...
Micronaut, Dragon-Slayer (Spring/boot) or just another framework [GeeCON Krak...Micronaut, Dragon-Slayer (Spring/boot) or just another framework [GeeCON Krak...
Micronaut, Dragon-Slayer (Spring/boot) or just another framework [GeeCON Krak...
 
GraphQL in Java World [Workshop RivieraDev 2019]
GraphQL in Java World [Workshop RivieraDev 2019]GraphQL in Java World [Workshop RivieraDev 2019]
GraphQL in Java World [Workshop RivieraDev 2019]
 
GraphQL vs Traditional Rest API [GeeCon Prague 2018]
GraphQL vs Traditional Rest API [GeeCon Prague 2018]GraphQL vs Traditional Rest API [GeeCon Prague 2018]
GraphQL vs Traditional Rest API [GeeCon Prague 2018]
 
What Users Want, A/B testing explained [CodeteCon 2018]
What Users Want, A/B testing explained [CodeteCon 2018]What Users Want, A/B testing explained [CodeteCon 2018]
What Users Want, A/B testing explained [CodeteCon 2018]
 
REST API vs gRPC, which one should you use in breaking a monolith [Dev conf 2...
REST API vs gRPC, which one should you use in breaking a monolith [Dev conf 2...REST API vs gRPC, which one should you use in breaking a monolith [Dev conf 2...
REST API vs gRPC, which one should you use in breaking a monolith [Dev conf 2...
 
GeeCON 2018 GraphQL vs Traditional REST API
GeeCON 2018 GraphQL vs Traditional REST APIGeeCON 2018 GraphQL vs Traditional REST API
GeeCON 2018 GraphQL vs Traditional REST API
 
Java Day Istanbul 2018 GraphQL vs Traditional REST API
Java Day Istanbul 2018 GraphQL vs Traditional REST APIJava Day Istanbul 2018 GraphQL vs Traditional REST API
Java Day Istanbul 2018 GraphQL vs Traditional REST API
 
Devoxx France 2018 GraphQL vs Traditional REST API
Devoxx France 2018 GraphQL vs Traditional REST APIDevoxx France 2018 GraphQL vs Traditional REST API
Devoxx France 2018 GraphQL vs Traditional REST API
 
Java land What Users Want, A/B testing explained
Java land What Users Want, A/B testing explainedJava land What Users Want, A/B testing explained
Java land What Users Want, A/B testing explained
 
JavaLand gRPC vs REST API
JavaLand gRPC vs REST APIJavaLand gRPC vs REST API
JavaLand gRPC vs REST API
 
Java One Secret of developing high performance website, with no budget
Java One Secret of developing high performance website, with no budgetJava One Secret of developing high performance website, with no budget
Java One Secret of developing high performance website, with no budget
 
Voxxed Days Belgrade - Changing wheels on moving car, from monolith to micros...
Voxxed Days Belgrade - Changing wheels on moving car, from monolith to micros...Voxxed Days Belgrade - Changing wheels on moving car, from monolith to micros...
Voxxed Days Belgrade - Changing wheels on moving car, from monolith to micros...
 
What users want [DevoxxPL]
What users want [DevoxxPL]What users want [DevoxxPL]
What users want [DevoxxPL]
 
Secret of developing high performance website, with no budget in small amount...
Secret of developing high performance website, with no budget in small amount...Secret of developing high performance website, with no budget in small amount...
Secret of developing high performance website, with no budget in small amount...
 
Changing wheels on moving car, from monolith to microservices by using api's V2
Changing wheels on moving car, from monolith to microservices by using api's V2Changing wheels on moving car, from monolith to microservices by using api's V2
Changing wheels on moving car, from monolith to microservices by using api's V2
 
Changing wheels on moving car, from monolith to microservices by using api's
Changing wheels on moving car, from monolith to microservices by using api'sChanging wheels on moving car, from monolith to microservices by using api's
Changing wheels on moving car, from monolith to microservices by using api's
 
What users want
What users wantWhat users want
What users want
 

Recently uploaded

Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Jeffrey Haguewood
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
kumardaparthi1024
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Tosin Akinosho
 
AWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptxAWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptx
HarisZaheer8
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
Postman
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
DanBrown980551
 
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
alexjohnson7307
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
MichaelKnudsen27
 
Recommendation System using RAG Architecture
Recommendation System using RAG ArchitectureRecommendation System using RAG Architecture
Recommendation System using RAG Architecture
fredae14
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
saastr
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
Chart Kalyan
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
Tatiana Kojar
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
Zilliz
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
akankshawande
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Alpen-Adria-Universität
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
ssuserfac0301
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
Jason Packer
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Safe Software
 

Recently uploaded (20)

Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
 
AWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptxAWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptx
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
 
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
 
Recommendation System using RAG Architecture
Recommendation System using RAG ArchitectureRecommendation System using RAG Architecture
Recommendation System using RAG Architecture
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
 

Protocol buffers and Microservices