Durante esta sesión examinaremos cómo el mundo de los eventos y los microservicios se complementan y mejoran explorando cómo los patrones basados en eventos nos permiten descomponer monolitos de manera escalable, resiliente y desacoplada.
1. Conectando servicios/sistemas
Confluent® and Event Streaming in the Changing World of Technology
Asier Fernandez
Advisory Solution Engineer
Sergio Duran Vegas
Team Lead Solutions Engineering
2. El auge del Data in Motion
2011
Apache Kafka
creado en LinkedIn por
los fundadores de
Confluent
2014
2020
+2K
Clientes
+80% Fortune 500
usan Apache Kafka
80%de los
aportes a la
comunidad open
source
3. Juan Soto
Customer Success
Technical Architect
About us :
Santander Confluent Team
Banco Santander is a strategic customer
of Confluent.
“Strategic” means that our team works in
tandem to bring real-time, event-driven
transformation and outcomes across the
bank
Felipe Trigo
Strategic Global Account
Director
Erica Schultz
Executive Sponsor
Sergio Duran
Solution Engineering
Team Lead
Gonzalo Garcia
PS & Education
Asier Fernandez
Solution Engineer
4. How are you doing today.
ESBs apprentice.
Some Data Warehousing
Installed a couple of API Gateways :)
and a lots of streaming and coffee for the
last 4 years.
https://www.linkedin.com/in/sduranvegas/
5. Confidential and Proprietary.
Enterprises require total connectivity and
instant reaction, 24x7, anywhere, in real-time.
But they can’t get there with traditional,
historical databases filled with data at rest.
They need a complete streaming platform,
dually capable of setting data in motion and
analyzing that data in real-time, and which is
globally interconnecting the clouds and
on-premises data centers.
Our Mission
Set Data in Motion
Today, the digital realm is as
important as the physical world in
how business is transacted.
5
Confidential and Proprietary.
6. Confidential and Proprietary.
A New Paradigm is Required for Data in Motion:
Continuously processing evolving streams of data in real-time
6
Rich Front-end
Customer Experiences
Real-time
Data
Real-time
Stream Processing
Real-time Backend
Operations
QUERY
A Sale
A Shipment
A Trade
A Customer
Experience
7. At Confluent,
streaming is in our DNA.
We help the world’s
largest organizations
make it part of theirs.
7
https://www.confluent.io/customers/
9. Confidential and Proprietary.
Classic computing
First computers
Single team in charge of dev and ops
Single program/app
Unique users.
Operations/logic and data in the same place
11. Confidential and Proprietary.
Distributed Systems
High end tech
Multiple teams focused on dev and/or ops.
Multiple applications
Internal and external users
Data and logic are two completely different
things
12. Confidential and Proprietary.
Fallacies of distributed computing
1. The network is reliable
2. Latency is zero
3. Bandwidth is infinite
4. The network is secure
5. Topology doesn’t change
6. There is one administrator
7. Transport cost is zero
8. The network is homogeneous
https://ably.com/blog/8-fallacies-of-distributed-computing
20. Breaking the monolith
Retail Accounts
Retail Accounts Onboarding
Money Laundering
Online Banking
Sign-up Validation
Payments
Create
User
21. Breaking the monolith (Synchronous calls)
Retail Accounts
Sign-up Validation
createUser()
registerUser()
Create
User
validateUser()
• Simple and intuitive
• It happens in real time or it never happens
30. Breaking the monolith
Retail Accounts
Sign-up Validation
createUser()
registerUser()
Create
User
validateUser()
Validation
Validation
Sign-up
Sign-up
UserExists()
UserNon
Prosecuted()
Create
User
31. Breaking the monolith
Retail Accounts
Sign-up Validation
createUser()
registerUser()
Create
User
validateUser()
Validation
Validation
Sign-up
Sign-up
UserExists()
UserNon
Prosecuted()
● Asynchronous process
○ Built-in back pressure
○ Scale services independently
○ Break the all or nothing.
○ Enables “batching”
32. Breaking the monolith
Retail Accounts
Sign-up Validation
createUser()
UserExists()
registerUser()
Create
User
validateUser()
Validation
Validation
Sign-up
Sign-up
UserNon
Prosecuted()
● Event Driven Cache
○ Dataset can be big but not too big (~TB)
○ Better
performance(throughput/latency)
○ Always Available
○ Eventually consistent
48. Breaking the monolith
Retail Accounts
Sign-up Validation
createUser()
registerUser()
Create
User
validateUser()
Sign-up
What happens if Marketing wants to know
when a user is created?
Validation
Validation
Validation
UserExists()
UserNon
Prosecuted()
49. Breaking the monolith
Retail Accounts
Sign-up Validation
createUser()
registerUser()
Create
User
validateUser()
Sign-up
Notify()
Marketing
Validation
Validation
Validation
UserExists()
UserNon
Prosecuted()
What happens if Marketing wants to know
when a user is created?
50. Breaking the monolith
Retail Accounts
Sign-up Validation
createUser()
registerUser()
Create
User
validateUser()
Sign-up
Notify() Marketing
Validation
Validation
Validation
UserExists()
UserNon
Prosecuted()
What happens if Marketing now changes
their API? Or needs more info?
51. Breaking the monolith
Retail Accounts
Sign-up Validation
registerUser()
Create
User
validateUser()
Sign-up Validation
Validation
Validation
Marketing
Audit
Analytics
UserExists()
UserNon
Prosecuted()
What happens if more departments wants
the data?
Notify()
52. Breaking the monolith
Retail Accounts
Sign-up Validation
registerUser()
Create
User
validateUser()
Sign-up Validation
Validation
Validation
Marketing
Audit
Analytics
UserExists()
UserNon
Prosecuted()
And if they change their APIs?
53. Breaking the monolith
Retail Accounts
Sign-up Validation
createUser()
registerUser()
Create
User
validateUser()
Sign-up Validation
Validation
Validation
Marketing
Audit
Analytics
UserExists()
UserNon
Prosecuted()
What happens if more departments wants
the data?
67. Confidential and Proprietary.
Microservicios síncronos
• Ventajas
• Simple e Intuitivo
• Comunicación sucede en tiempo real o no sucede
• Desventajas
• Llamadas bloqueantes
• Provisionamiento para picos
• Errores en cascada
• Cierto acoplamiento
68. Confidential and Proprietary.
Microservicios asincronos
• Ventajas
• Llamadas no bloqueantes
• Mejor uso de recursos (mejor preparado para picos, caidas, uso “normal” )
• Servicios desacoplados
• Data Sharing
• Operacional y Data
• Desventajas
• Flujos más complejos de diseñar
• Necesidad de mantener un broker