SlideShare ist ein Scribd-Unternehmen logo
1 von 89
Downloaden Sie, um offline zu lesen
COLLABORATIVE
APPLICATIONS
AT SCALE WITH
RSOCKET
Sergey Tselovalnikov
@SerCeMan
Canva
SCALE
Why should you care?
Canva
Alice
Bob
Canva
Alice
Bob
Add "!"
Canva
Alice
Bob
Add "!"
Alice
added "!"
Alice
Canva
Bob Dillon
Caroll
s
o
g
o
o
d
!
DESIGN CHOICES
Application
Architecture Infrastructure
Architecture
Bob
WebSocket
Bob
Bob
Bob
Multiplexing
O(1) vs O(N)
Editing
Presenting
WebSocket
Gateway
Editing
Presenting
WebSocket
Gateway
WebSocket
Gateway
RSocket WebSocket connection
WebSocket
Gateway
Presenting Channel
RSocket WebSocket connection
WebSocket
Gateway
Editing Channel
Presenting Channel
RSocket WebSocket connection
Editing
Presenting
WebSocket
Gateway
No Backpressure
Editing
Presenting
WebSocket
Gateway
No Backpressure
Editing
Presenting
WebSocket
Gateway
No Backpressure
Editing
Presenting
WebSocket
Gateway
Editing
Presenting
WebSocket
Gateway
Application
RSocket-Java
Transport
- how to send & receive
Acceptor
- how to handle
public interface DuplexConnection {
Mono<Void> send(Publisher<ByteBuf> frames);
Flux<ByteBuf> receive();
}
public interface DuplexConnection {
Mono<Void> send(Publisher<ByteBuf> frames);
Flux<ByteBuf> receive();
} RSocket
Frame
RSocket
Frame
class RsInterceptor implements DuplexConnectionInterceptor {
@Override
public DuplexConnection apply(Type type, DuplexConnection connection) {
return new InstrumentedRsConnection(type, connection);
}
static class InstrumentedRsConnection implements DuplexConnection {
@Override
public Mono<Void> send(Publisher<ByteBuf> frames) {
return connection.send(Flux.from(frames) //
.doOnNext(frame -> recordFrame("out", frame, connectionType)));
}
...
}
wraps the
connection
record each
frame
Transport metrics
REQ
OK
ERROR
rate(ERROR)
rate(OK + ERROR)
Transport metrics
NEXT NEXT NEXT
COMPLETE
ERROR
Transport metrics
NEXT NEXT NEXT NEXT
COMPLETE
ERROR
+ CANCEL frame
Transport metrics
NEXT NEXT NEXT NEXT
COMPLETE
ERROR
+ cancellation
+ in/out
rate(ERROR)
rate(ALL() - KEEPALIVE)
Error rate
rate(CANCEL)
rate(ALL() - KEEPALIVE)
Cancel rate
Acceptor
public interface RSocket {
Flux<Payload> requestChannel(Flux<Payload> incoming) {
...
}
}
incoming
messages
outgoing
messages
Intercepting Acceptor
class ForwardingRSocket implements RSocket {
private final RSocket delegate;
public ForwardingRSocket(RSocket delegate) {
this.delegate = delegate;
}
@Override
public Flux<Payload> requestChannel(Publisher<Payload> payloads) {
return delegate.requestChannel(payloads);
}
...
What's the latency for establishing a channel?
Intercepting Acceptor
What's the latency for establishing a channel?
For how long do the channels stay alive?
Flux<Payload> recordSignal(Supplier<Flux<Payload>> signalProvider) {
var time = Timer.start("RSOCKET_STREAM_TIMER");
return signalProvider.get().doFinally(signal -> {
time.stop();
});
}
Intercepting Acceptor
Logging
@Override
public Flux<Payload> requestChannel(Publisher<Payload> payloads) {
var incoming = Flux.from(payloads)
.doOnSubscribe(s -> logger.info("subscribed to incoming"))
.doOnCancel(() -> logger.info("unsubscribed from incoming"))
.doOnComplete(() -> logger.info("complete incoming"))
.doOnError(e -> logger.info("error incoming"));
var outgoing = delegate().requestChannel(incoming);
return outgoing //
.doOnSubscribe(s -> logger.info("subscribed to outgoing"))
.doOnCancel(() -> logger.info("unsubscribed from outgoing"))
.doOnComplete(() -> logger.info("complete outgoing"))
.doOnError(e -> logger.info("error outgoing"));
}
}
Logging Caveats
Sep 3, 2021 @ 18:42:42.042 socket connected
Sep 3, 2021 @ 18:42:42.042 socket connected
Sep 3, 2021 @ 18:42:42.042 subscribed to outgoing
Sep 3, 2021 @ 18:42:42.042 unsubscribed from outgoing
Sep 3, 2021 @ 18:42:42.042 unsubscribed from incoming
Sep 3, 2021 @ 18:42:42.042 socket closed
Sep 3, 2021 @ 18:42:42.042 subscribed to outgoing
Sep 3, 2021 @ 18:42:42.042 subscribed to incoming
Sep 3, 2021 @ 18:42:42.042 subscribed to outgoing
Sep 3, 2021 @ 18:42:42.042 socket connected
Sep 3, 2021 @ 18:42:42.042 unsubscribed from incoming
Sep 3, 2021 @ 18:42:42.042 socket closed
Sep 3, 2021 @ 18:42:42.042 socket connected
Sep 3, 2021 @ 18:42:42.042 subscribed to outgoing
Sep 3, 2021 @ 18:42:42.042 unsubscribed from outgoing
Sep 3, 2021 @ 18:42:42.042 socket connected
Sep 3, 2021 @ 18:42:42.042 subscribed to outgoing
Sep 3, 2021 @ 18:42:42.042 socket closed
Sep 3, 2021 @ 18:42:42.042 socket closed
Sep 3, 2021 @ 18:42:42.042 unsubscribed from incoming
Logging Caveats
Sep 3, 2021 @ 18:42:42.042 685424232abc socket connected
Sep 3, 2021 @ 18:42:42.042 685424232def socket connected
Sep 3, 2021 @ 18:42:42.042 685424232abc subscribed to outgoing
Sep 3, 2021 @ 18:42:42.042 685424232def unsubscribed from outgoing
Sep 3, 2021 @ 18:42:42.042 685424232abc unsubscribed from incoming
Sep 3, 2021 @ 18:42:42.042 685424232ghi socket closed
Sep 3, 2021 @ 18:42:42.042 685424232abc subscribed to outgoing
Sep 3, 2021 @ 18:42:42.042 685424232def subscribed to incoming
Sep 3, 2021 @ 18:42:42.042 685424232abc subscribed to outgoing
Sep 3, 2021 @ 18:42:42.042 685424232ghi socket connected
Sep 3, 2021 @ 18:42:42.042 685424232abc unsubscribed from incoming
Sep 3, 2021 @ 18:42:42.042 685424232def socket closed
Sep 3, 2021 @ 18:42:42.042 685424232ghi socket connected
Sep 3, 2021 @ 18:42:42.042 685424232abc subscribed to outgoing
Sep 3, 2021 @ 18:42:42.042 685424232ghi unsubscribed from outgoing
Sep 3, 2021 @ 18:42:42.042 685424232def socket connected
Sep 3, 2021 @ 18:42:42.042 685424232ghi subscribed to outgoing
Sep 3, 2021 @ 18:42:42.042 685424232abc socket closed
Sep 3, 2021 @ 18:42:42.042 685424232ghi socket closed
Sep 3, 2021 @ 18:42:42.042 685424232abc unsubscribed from incoming
Logging Caveats
if (Random.nextInt(0, 1_000_000) < flags.get(SAMPLING_RATE)) {
setAttribute("sampled", true)
}
Service Definition
service FooService {
rpc connect (stream IncomingMsg) returns (stream OutgoingMsg) {
option (connectMessage) = "ConnectMsg"
}
}
Flux<Payload> => Flux<IncomingMsg>
Flowable
Observable
backpressure
no
backpressure
Backpressure
strategy
Flowable
Observable
backpessure
no
backpessure
Reconnection
/**
* Returns a Flowable that immediately publishes the current connection
* status and thereafter updates as it changes. Once a connection is in
* the CLOSED or ERROR state, it may not be connected again.
* Implementations must publish values per the comments on ConnectionStatus.
*/
connectionStatus(): Flowable<ConnectionStatus>;
Exponential backoff
function backoff(): () => number {
let i = 0;
return () => Math.pow(2, i++);
}
...
const next = backoff();
...
await Math.round(next() * 1000);
Jitter
function backoff(): () => number {
let i = 0;
return () =>
Math.pow(1.5, Math.random() + i++);
}
...
const next = backoff();
...
await Math.round(next() * 1000);
WebSocket Inspector
RSocket Frame Inspector
https://github.com/rsocket/rsocket-chrome-devtools
Load Testing
50
40
30
20
10
0
Load shedding
75
50
25
0
Instance configuration
Number of open files
Low latency GC (ShenandoahGC for memory)
Infrastructure
Load Balancing
Backend
Backend
Backend
WebSocket
Gateway
Backend
Backend
Backend
WebSocket
Gateway
1
2
Backend
Backend
Backend
WebSocket
Gateway
1
2
Backend
Backend
WebSocket
Gateway
Backend
Backend
WebSocket
Gateway
Backend
Backend
Backend
WebSocket
Gateway
Backend
Backend
Backend
WebSocket
Gateway
2
2
Backend
Backend
WebSocket
Gateway
Backend
Backend
WebSocket
Gateway
Service
Registry
Backend
Backend
WebSocket
Gateway
Service
Registry
Backend
Backend
Backend
Service
Registry
Backend
WebSocket
Gateway
Backend
Backend
Service
Registry
Backend
WebSocket
Gateway
50000
50000
1
Backend
Backend
Service
Registry
Backend
WebSocket
Gateway
50001
50001
2
Connecting
Healthy Disposed
Unhealthy
Healthy
Healthy
Healthy
50000
50000
1
var socket = healthy.stream()
.filter(s -> s.availability() > 0)
.min(s -> s.openChannels());
Availability
/**
* @return a positive number representing the availability of the entity.
* Higher is better, 0.0 means not available
*/
double availability();
0 1
warm up
Healthy
Healthy
Healthy
50000
50000
1
var socket = healthy.stream()
.filter(s -> s.availability() > 0)
.min(s -> {
var active = s.activeChannels();
var availability = s.availability();
return active / availability;
});
Autoscaling
Autoscaling target
Primary: the number of connections
Autoscaling target
Primary: the number of connections
Autoscaling target
Primary: the number of connections
Secondary: CPU
Redeployments
Redeployments
WebSocket
Gateway
WebSocket
Gateway
old
new
Redeployments
deregistration delay
deregistration
started
Conclusion
Thank you
Sergey Tselovalnikov
@SerCeMan
Canva

Weitere ähnliche Inhalte

Ähnlich wie Collaborative Applications at Scale with RSocket

Azure BCDR in Action: From Setup to Failover and Back
Azure BCDR in Action: From Setup to Failover and BackAzure BCDR in Action: From Setup to Failover and Back
Azure BCDR in Action: From Setup to Failover and Backssuser6c6f84
 
ingraph: Live Queries on Graphs
ingraph: Live Queries on Graphs ingraph: Live Queries on Graphs
ingraph: Live Queries on Graphs Neo4j
 
Deep Dive: Amazon Virtual Private Cloud
Deep Dive: Amazon Virtual Private CloudDeep Dive: Amazon Virtual Private Cloud
Deep Dive: Amazon Virtual Private CloudAmazon Web Services
 
Incremental Graph Queries for Cypher
Incremental Graph Queries for CypherIncremental Graph Queries for Cypher
Incremental Graph Queries for CypheropenCypher
 
MPLS Deployment Chapter 3 - Optimization
MPLS Deployment Chapter 3 - OptimizationMPLS Deployment Chapter 3 - Optimization
MPLS Deployment Chapter 3 - OptimizationEricsson
 
PLNOG 4: Marcin Kuczera - Jak wyrzuciliśmy wszystkie Linuxy, czyli centralny ...
PLNOG 4: Marcin Kuczera - Jak wyrzuciliśmy wszystkie Linuxy, czyli centralny ...PLNOG 4: Marcin Kuczera - Jak wyrzuciliśmy wszystkie Linuxy, czyli centralny ...
PLNOG 4: Marcin Kuczera - Jak wyrzuciliśmy wszystkie Linuxy, czyli centralny ...PROIDEA
 
Building Scalable Data Center Networks
Building Scalable Data Center NetworksBuilding Scalable Data Center Networks
Building Scalable Data Center NetworksCumulus Networks
 
Deep Dive: Amazon Virtual Private Cloud
Deep Dive: Amazon Virtual Private CloudDeep Dive: Amazon Virtual Private Cloud
Deep Dive: Amazon Virtual Private CloudAmazon Web Services
 
Deep Dive: Amazon Virtual Private Cloud
Deep Dive: Amazon Virtual Private CloudDeep Dive: Amazon Virtual Private Cloud
Deep Dive: Amazon Virtual Private CloudAmazon Web Services
 
The Basic Introduction of Open vSwitch
The Basic Introduction of Open vSwitchThe Basic Introduction of Open vSwitch
The Basic Introduction of Open vSwitchTe-Yen Liu
 
Adc r2013 lab manual
Adc r2013 lab manualAdc r2013 lab manual
Adc r2013 lab manualKavitha Mani
 
129966863002202240[1]
129966863002202240[1]129966863002202240[1]
129966863002202240[1]威華 王
 
Chapter 7: Matrix Multiplication
Chapter 7: Matrix MultiplicationChapter 7: Matrix Multiplication
Chapter 7: Matrix MultiplicationHeman Pathak
 
UNDOCUMENTED Vyatta vRouter: Unbreakable VPN Tunneling (MEMO)
UNDOCUMENTED Vyatta vRouter: Unbreakable VPN Tunneling (MEMO) UNDOCUMENTED Vyatta vRouter: Unbreakable VPN Tunneling (MEMO)
UNDOCUMENTED Vyatta vRouter: Unbreakable VPN Tunneling (MEMO) Naoto MATSUMOTO
 
5 Kubernetes.pdf 5 Kubernetes.pdf 5 Kubernetes.pdf
5 Kubernetes.pdf 5 Kubernetes.pdf 5 Kubernetes.pdf5 Kubernetes.pdf 5 Kubernetes.pdf 5 Kubernetes.pdf
5 Kubernetes.pdf 5 Kubernetes.pdf 5 Kubernetes.pdfNuttavutThongjor1
 
A novel estimation based backoff algorithm in the ieee
A novel estimation based backoff algorithm in the ieeeA novel estimation based backoff algorithm in the ieee
A novel estimation based backoff algorithm in the ieeeambitlick
 
Top school in gurgaon
Top school in gurgaonTop school in gurgaon
Top school in gurgaonEdhole.com
 

Ähnlich wie Collaborative Applications at Scale with RSocket (19)

Azure BCDR in Action: From Setup to Failover and Back
Azure BCDR in Action: From Setup to Failover and BackAzure BCDR in Action: From Setup to Failover and Back
Azure BCDR in Action: From Setup to Failover and Back
 
ingraph: Live Queries on Graphs
ingraph: Live Queries on Graphs ingraph: Live Queries on Graphs
ingraph: Live Queries on Graphs
 
Deep Dive: Amazon Virtual Private Cloud
Deep Dive: Amazon Virtual Private CloudDeep Dive: Amazon Virtual Private Cloud
Deep Dive: Amazon Virtual Private Cloud
 
Incremental Graph Queries for Cypher
Incremental Graph Queries for CypherIncremental Graph Queries for Cypher
Incremental Graph Queries for Cypher
 
MPLS Deployment Chapter 3 - Optimization
MPLS Deployment Chapter 3 - OptimizationMPLS Deployment Chapter 3 - Optimization
MPLS Deployment Chapter 3 - Optimization
 
PLNOG 4: Marcin Kuczera - Jak wyrzuciliśmy wszystkie Linuxy, czyli centralny ...
PLNOG 4: Marcin Kuczera - Jak wyrzuciliśmy wszystkie Linuxy, czyli centralny ...PLNOG 4: Marcin Kuczera - Jak wyrzuciliśmy wszystkie Linuxy, czyli centralny ...
PLNOG 4: Marcin Kuczera - Jak wyrzuciliśmy wszystkie Linuxy, czyli centralny ...
 
Building Scalable Data Center Networks
Building Scalable Data Center NetworksBuilding Scalable Data Center Networks
Building Scalable Data Center Networks
 
Deep Dive: Amazon Virtual Private Cloud
Deep Dive: Amazon Virtual Private CloudDeep Dive: Amazon Virtual Private Cloud
Deep Dive: Amazon Virtual Private Cloud
 
Deep Dive: Amazon Virtual Private Cloud
Deep Dive: Amazon Virtual Private CloudDeep Dive: Amazon Virtual Private Cloud
Deep Dive: Amazon Virtual Private Cloud
 
The Basic Introduction of Open vSwitch
The Basic Introduction of Open vSwitchThe Basic Introduction of Open vSwitch
The Basic Introduction of Open vSwitch
 
Adc r2013 lab manual
Adc r2013 lab manualAdc r2013 lab manual
Adc r2013 lab manual
 
129966863002202240[1]
129966863002202240[1]129966863002202240[1]
129966863002202240[1]
 
Chapter 7: Matrix Multiplication
Chapter 7: Matrix MultiplicationChapter 7: Matrix Multiplication
Chapter 7: Matrix Multiplication
 
UNDOCUMENTED Vyatta vRouter: Unbreakable VPN Tunneling (MEMO)
UNDOCUMENTED Vyatta vRouter: Unbreakable VPN Tunneling (MEMO) UNDOCUMENTED Vyatta vRouter: Unbreakable VPN Tunneling (MEMO)
UNDOCUMENTED Vyatta vRouter: Unbreakable VPN Tunneling (MEMO)
 
5 Kubernetes.pdf 5 Kubernetes.pdf 5 Kubernetes.pdf
5 Kubernetes.pdf 5 Kubernetes.pdf 5 Kubernetes.pdf5 Kubernetes.pdf 5 Kubernetes.pdf 5 Kubernetes.pdf
5 Kubernetes.pdf 5 Kubernetes.pdf 5 Kubernetes.pdf
 
A novel estimation based backoff algorithm in the ieee
A novel estimation based backoff algorithm in the ieeeA novel estimation based backoff algorithm in the ieee
A novel estimation based backoff algorithm in the ieee
 
network.pptx
network.pptxnetwork.pptx
network.pptx
 
481 lecture20
481 lecture20481 lecture20
481 lecture20
 
Top school in gurgaon
Top school in gurgaonTop school in gurgaon
Top school in gurgaon
 

Mehr von VMware Tanzu

What AI Means For Your Product Strategy And What To Do About It
What AI Means For Your Product Strategy And What To Do About ItWhat AI Means For Your Product Strategy And What To Do About It
What AI Means For Your Product Strategy And What To Do About ItVMware Tanzu
 
Make the Right Thing the Obvious Thing at Cardinal Health 2023
Make the Right Thing the Obvious Thing at Cardinal Health 2023Make the Right Thing the Obvious Thing at Cardinal Health 2023
Make the Right Thing the Obvious Thing at Cardinal Health 2023VMware Tanzu
 
Enhancing DevEx and Simplifying Operations at Scale
Enhancing DevEx and Simplifying Operations at ScaleEnhancing DevEx and Simplifying Operations at Scale
Enhancing DevEx and Simplifying Operations at ScaleVMware Tanzu
 
Spring Update | July 2023
Spring Update | July 2023Spring Update | July 2023
Spring Update | July 2023VMware Tanzu
 
Platforms, Platform Engineering, & Platform as a Product
Platforms, Platform Engineering, & Platform as a ProductPlatforms, Platform Engineering, & Platform as a Product
Platforms, Platform Engineering, & Platform as a ProductVMware Tanzu
 
Building Cloud Ready Apps
Building Cloud Ready AppsBuilding Cloud Ready Apps
Building Cloud Ready AppsVMware Tanzu
 
Spring Boot 3 And Beyond
Spring Boot 3 And BeyondSpring Boot 3 And Beyond
Spring Boot 3 And BeyondVMware Tanzu
 
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdfSpring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdfVMware Tanzu
 
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023VMware Tanzu
 
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023VMware Tanzu
 
tanzu_developer_connect.pptx
tanzu_developer_connect.pptxtanzu_developer_connect.pptx
tanzu_developer_connect.pptxVMware Tanzu
 
Tanzu Virtual Developer Connect Workshop - French
Tanzu Virtual Developer Connect Workshop - FrenchTanzu Virtual Developer Connect Workshop - French
Tanzu Virtual Developer Connect Workshop - FrenchVMware Tanzu
 
Tanzu Developer Connect Workshop - English
Tanzu Developer Connect Workshop - EnglishTanzu Developer Connect Workshop - English
Tanzu Developer Connect Workshop - EnglishVMware Tanzu
 
Virtual Developer Connect Workshop - English
Virtual Developer Connect Workshop - EnglishVirtual Developer Connect Workshop - English
Virtual Developer Connect Workshop - EnglishVMware Tanzu
 
Tanzu Developer Connect - French
Tanzu Developer Connect - FrenchTanzu Developer Connect - French
Tanzu Developer Connect - FrenchVMware Tanzu
 
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023VMware Tanzu
 
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring BootSpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring BootVMware Tanzu
 
SpringOne Tour: The Influential Software Engineer
SpringOne Tour: The Influential Software EngineerSpringOne Tour: The Influential Software Engineer
SpringOne Tour: The Influential Software EngineerVMware Tanzu
 
SpringOne Tour: Domain-Driven Design: Theory vs Practice
SpringOne Tour: Domain-Driven Design: Theory vs PracticeSpringOne Tour: Domain-Driven Design: Theory vs Practice
SpringOne Tour: Domain-Driven Design: Theory vs PracticeVMware Tanzu
 
SpringOne Tour: Spring Recipes: A Collection of Common-Sense Solutions
SpringOne Tour: Spring Recipes: A Collection of Common-Sense SolutionsSpringOne Tour: Spring Recipes: A Collection of Common-Sense Solutions
SpringOne Tour: Spring Recipes: A Collection of Common-Sense SolutionsVMware Tanzu
 

Mehr von VMware Tanzu (20)

What AI Means For Your Product Strategy And What To Do About It
What AI Means For Your Product Strategy And What To Do About ItWhat AI Means For Your Product Strategy And What To Do About It
What AI Means For Your Product Strategy And What To Do About It
 
Make the Right Thing the Obvious Thing at Cardinal Health 2023
Make the Right Thing the Obvious Thing at Cardinal Health 2023Make the Right Thing the Obvious Thing at Cardinal Health 2023
Make the Right Thing the Obvious Thing at Cardinal Health 2023
 
Enhancing DevEx and Simplifying Operations at Scale
Enhancing DevEx and Simplifying Operations at ScaleEnhancing DevEx and Simplifying Operations at Scale
Enhancing DevEx and Simplifying Operations at Scale
 
Spring Update | July 2023
Spring Update | July 2023Spring Update | July 2023
Spring Update | July 2023
 
Platforms, Platform Engineering, & Platform as a Product
Platforms, Platform Engineering, & Platform as a ProductPlatforms, Platform Engineering, & Platform as a Product
Platforms, Platform Engineering, & Platform as a Product
 
Building Cloud Ready Apps
Building Cloud Ready AppsBuilding Cloud Ready Apps
Building Cloud Ready Apps
 
Spring Boot 3 And Beyond
Spring Boot 3 And BeyondSpring Boot 3 And Beyond
Spring Boot 3 And Beyond
 
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdfSpring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
 
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
 
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
 
tanzu_developer_connect.pptx
tanzu_developer_connect.pptxtanzu_developer_connect.pptx
tanzu_developer_connect.pptx
 
Tanzu Virtual Developer Connect Workshop - French
Tanzu Virtual Developer Connect Workshop - FrenchTanzu Virtual Developer Connect Workshop - French
Tanzu Virtual Developer Connect Workshop - French
 
Tanzu Developer Connect Workshop - English
Tanzu Developer Connect Workshop - EnglishTanzu Developer Connect Workshop - English
Tanzu Developer Connect Workshop - English
 
Virtual Developer Connect Workshop - English
Virtual Developer Connect Workshop - EnglishVirtual Developer Connect Workshop - English
Virtual Developer Connect Workshop - English
 
Tanzu Developer Connect - French
Tanzu Developer Connect - FrenchTanzu Developer Connect - French
Tanzu Developer Connect - French
 
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
 
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring BootSpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
 
SpringOne Tour: The Influential Software Engineer
SpringOne Tour: The Influential Software EngineerSpringOne Tour: The Influential Software Engineer
SpringOne Tour: The Influential Software Engineer
 
SpringOne Tour: Domain-Driven Design: Theory vs Practice
SpringOne Tour: Domain-Driven Design: Theory vs PracticeSpringOne Tour: Domain-Driven Design: Theory vs Practice
SpringOne Tour: Domain-Driven Design: Theory vs Practice
 
SpringOne Tour: Spring Recipes: A Collection of Common-Sense Solutions
SpringOne Tour: Spring Recipes: A Collection of Common-Sense SolutionsSpringOne Tour: Spring Recipes: A Collection of Common-Sense Solutions
SpringOne Tour: Spring Recipes: A Collection of Common-Sense Solutions
 

Kürzlich hochgeladen

AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension AidPhilip Schwarz
 
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
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesVictorSzoltysek
 
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
 
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
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech studentsHimanshiGarg82
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
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
 
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
 
+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
 
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
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfryanfarris8
 
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
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionOnePlan Solutions
 
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
 

Kürzlich hochgeladen (20)

AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
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
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
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 🔝✔️✔️
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
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 🔝✔️✔️
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
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
 
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
 
+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...
 
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
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
 
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
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
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 ...
 

Collaborative Applications at Scale with RSocket