SlideShare a Scribd company logo
Game of Streams 🐉
How to tame & get the most from your
messaging platforms
Mark Heckler
Professional Problem Solver, Spring Developer & Advocate
www.thehecklers.com
mark@thehecklers.com
mheckler@vmware.com
@mkheck
@mkheck www.thehecklers.com
“Please do LESS with MORE!” 💰💰💰
@mkheck www.thehecklers.com
Who am I?
• Author
• Architect & Developer
• Java Champion, Rockstar
• Professional Problem Solver
• Spring Developer & Advocate
• Creador y curador de
• Pilot
@mkheck www.thehecklers.com
New book!
Now available for
early access
https://bit.ly/springbootbook
@mkheck www.thehecklers.com
Takeaways
Why use messaging platforms/where do they fit in a distributed
architecture?
Examples of leading messaging platforms
What is Spring Cloud Stream?
Why use it?
@mkheck www.thehecklers.com
Takeaways
Why use messaging platforms/where do they fit in a distributed
architecture?
Examples of leading messaging platforms
What is Spring Cloud Stream?
Why use it?
@mkheck www.thehecklers.com
Takeaways
Why use messaging platforms/where do they fit in a distributed
architecture?
Examples of leading messaging platforms
What is Spring Cloud Stream?
Why use it?
@mkheck www.thehecklers.com
Takeaways
Why use messaging platforms/where do they fit in a distributed
architecture?
Examples of leading messaging platforms
What is Spring Cloud Stream?
Why use it?
@mkheck www.thehecklers.com
Why use it?
@mkheck www.thehecklers.com
SCSt + ${messaging.platform} =
@mkheck www.thehecklers.com
SinkProcessor
Power
Source
@mkheck www.thehecklers.com
Processor
Sink
Sink
Processor
Scalability
Source
Sink
Sink
@mkheck www.thehecklers.com
Processor
Sink
Sink
Processor
Flexibility
Source
Sink
Sink
@mkheck www.thehecklers.com
Processor
Sink
Sink
Processor
Versatility
Source
Sink
Sink
@mkheck www.thehecklers.com
SinkProcessor
Stream Revisited: Legacy
Source
@mkheck www.thehecklers.com
ConsumerFunction
Stream Revisited: Evolution
Supplier
@mkheck www.thehecklers.com
And a few really useful bits & bobs
(if time permits, if not, please star the repo!)
@mkheck www.thehecklers.com
Let’s code!
@mkheck www.thehecklers.com
@mkheck www.thehecklers.com
Resources
https://github.com/mkheck/game-of-streams-aircraft-edition
https://spring.io/projects/spring-cloud-stream
mark@thehecklers.com, mheckler@vmware.com
@mkheck on Twitter
Kotlin fan? https://github.com/mkheck/game-of-streams-aircraft-edition-kotlin
@mkheck www.thehecklers.com
In case of emergency, break glass
@mkheck www.thehecklers.com
Source service
dependencies
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-stream</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-stream-binder-kafka</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-stream-binder-rabbit</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
@mkheck www.thehecklers.com
Source service
properties
server.port=0
spring.cloud.stream.default-binder=rabbit
#spring.cloud.stream.poller.fixed-delay=5000
spring.cloud.stream.bindings.sendAircraftPositions-out-0.destination=processor
#spring.cloud.stream.bindings.sendAircraftPositions-out-0.binder=kafka
spring.cloud.stream.kafka.binder.min-partition-count=4
spring.cloud.stream.kafka.binder.auto-add-partitions=true
# DO NOT DO THIS IN PRODUCTION, FOR DEMO PURPOSES ONLY!!!
management.endpoints.web.exposure.include=*
@mkheck www.thehecklers.com
Source service
code
(imperative)
@SpringBootApplication
public class PsourceApplication {
public static void main(String[] args) {
SpringApplication.run(PsourceApplication.class, args);
}
}
@Configuration
class PositionFeed {
private final WebClient client = WebClient.create("http://localhost:8080");
@Bean
Supplier<List<Aircraft>> sendAircraftPositions() {
return () -> {
List<Aircraft> aircraftList = client.get()
.retrieve()
.bodyToFlux(Aircraft.class)
.filter(ac -> !ac.getReg().isEmpty())
.toStream()
.collect(Collectors.toList());
aircraftList.forEach(System.out::println);
return aircraftList;
};
}
}
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
class Aircraft {
private Long id;
private String callsign, reg, flightno, type;
private int altitude, heading, speed;
private double lat, lon;
}
@mkheck www.thehecklers.com
Source service
code
(reactive)
@SpringBootApplication
public class PsourceApplication {
public static void main(String[] args) {
SpringApplication.run(PsourceApplication.class, args);
}
}
@Configuration
class PositionFeed {
private final WebClient client = WebClient.create("http://localhost:8080");
@PollableBean
Supplier<Flux<Aircraft>> sendAircraftPositions() {
return () -> client.get()
.retrieve()
.bodyToFlux(Aircraft.class)
.filter(ac -> !ac.getReg().isEmpty())
.log();
}
}
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
class Aircraft {
private Long id;
private String callsign, reg, flightno, type;
private int altitude, heading, speed;
private double lat, lon;
}
@mkheck www.thehecklers.com
Processor
service
dependencies
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-stream</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-stream-binder-kafka</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-stream-binder-rabbit</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
@mkheck www.thehecklers.com
Processor
service
properties
server.port=0
spring.cloud.stream.default-binder=rabbit
spring.cloud.function.definition=transformAC|filterNullCallsigns
spring.cloud.stream.bindings.transformAC|filterNullCallsigns-in-0.destination=processor
spring.cloud.stream.bindings.transformAC|filterNullCallsigns-in-0.group=processor
#spring.cloud.stream.bindings.transformAC|filterNullCallsigns-in-0.binder=kafka
spring.cloud.stream.bindings.transformAC|filterNullCallsigns-out-0.destination=sink
#spring.cloud.stream.bindings.transformAC|filterNullCallsigns-out-0.binder=rabbit
spring.cloud.stream.kafka.binder.min-partition-count=4
spring.cloud.stream.kafka.binder.auto-add-partitions=true
# Again, DO NOT DO THIS IN PROD!
management.endpoints.web.exposure.include=*
@mkheck www.thehecklers.com
Processor
service code
(imperative)
@Configuration
class AircraftTransformer {
@Bean
Function<List<Aircraft>, List<EssentialAircraft>> transformAC() {
return listAC -> {
List<EssentialAircraft> listEssential = new ArrayList<>();
listAC.forEach(ac -> listEssential.add(new EssentialAircraft(ac.getCallsign(),
ac.getReg(),
ac.getType())));
listEssential.forEach(System.out::println);
return listEssential;
};
}
}
@Data
@AllArgsConstructor
class Aircraft {
private Long id;
private String callsign, reg, flightno, type;
private int altitude, heading, speed;
private double lat, lon;
}
@Data
class EssentialAircraft {
private String callsign, reg, type, mfr;
public EssentialAircraft(String callsign, String reg, String type) {
this.callsign = callsign;
this.reg = reg;
this.type = type;
setMfr();
}
private void setMfr() {
mfr = switch (type.substring(0, 2)) {
case "A2", "A3" -> "Airbus";
case "BE", "B3" -> "Beechcraft";
case "B7" -> "Boeing";
case "C1", "C2", "C4", "C6", "C7", "T2" -> "Cessna";
case "CR", "E7" -> "Embraer";
case "LJ" -> "Learjet";
case "MD" -> "McDonnell Douglas";
case "PA" -> "Piper";
default -> "Other";
};
}
}
@mkheck www.thehecklers.com
Processor
service code
(reactive)
@Configuration
class AircraftTransformer {
@Bean
Function<Flux<Aircraft>, Flux<EssentialAircraft>> transformAC() {
return aircraftFlux -> aircraftFlux.map(ac -> new EssentialAircraft(ac.getCallsign(),
ac.getReg(),
ac.getType()));
//.log();
}
@Bean
Function<Flux<EssentialAircraft>, Flux<EssentialAircraft>> filterNullCallsigns() {
return flux -> flux.filter(ac -> null != ac.getCallsign())
.log();
}
}
@Data
@AllArgsConstructor
class Aircraft {
private Long id;
private String callsign, reg, flightno, type;
private int altitude, heading, speed;
private double lat, lon;
}
@Data
class EssentialAircraft {
private String callsign, reg, type, mfr;
public EssentialAircraft(String callsign, String reg, String type) {
this.callsign = callsign;
this.reg = reg;
this.type = type;
setMfr();
}
private void setMfr() {
mfr = switch (type.substring(0, 2)) {
case "A2", "A3" -> "Airbus";
case "BE", "B3" -> "Beechcraft";
case "B7" -> "Boeing";
case "C1", "C2", "C4", "C6", "C7", "T2" -> "Cessna";
case "CR", "E7" -> "Embraer";
case "LJ" -> "Learjet";
case "MD" -> "McDonnell Douglas";
case "PA" -> "Piper";
default -> "Other";
};
}
}
@mkheck www.thehecklers.com
Sink service
dependencies
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-stream</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-stream-binder-kafka</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-stream-binder-rabbit</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
@mkheck www.thehecklers.com
Sink service
properties
server.port=0
spring.cloud.stream.bindings.logIt-in-0.destination=sink
spring.cloud.stream.bindings.logIt-in-0.group=sink
spring.cloud.stream.bindings.logIt-in-0.binder=rabbit
spring.cloud.stream.kafka.binder.min-partition-count=4
spring.cloud.stream.kafka.binder.auto-add-partitions=true
# Once more (I promise): DO NOT DO THIS IN PRODUCTION!!!
management.endpoints.web.exposure.include=*
@mkheck www.thehecklers.com
Sink service
code
(imperative)
@SpringBootApplication
public class PsinkApplication {
public static void main(String[] args) {
SpringApplication.run(PsinkApplication.class, args);
}
}
@Configuration
class AircraftLogger {
@Bean
Consumer<List<EssentialAircraft>> logIt() {
return listEssentialAC -> listEssentialAC.forEach(System.out::println);
}
}
@Data
@AllArgsConstructor
class EssentialAircraft {
private String callsign, reg, type;
private String mfr;
}
@mkheck www.thehecklers.com
Sink service
code
(reactive)
@SpringBootApplication
public class PsinkApplication {
public static void main(String[] args) {
SpringApplication.run(PsinkApplication.class, args);
}
}
@Configuration
class AircraftLogger {
@Bean
Consumer<Flux<EssentialAircraft>> logIt() {
return eACFlux -> eACFlux.subscribe(System.out::println);
}
}
@Data
@AllArgsConstructor
class EssentialAircraft {
private String callsign, reg, type;
private String mfr;
}
@mkheck www.thehecklers.com
Sample data
PlaneFinder API Gateway

More Related Content

What's hot (20)

PDF
Spring Cloud: Why? How? What?
Orkhan Gasimov
 
PDF
Shipping to Server and Cloud with Docker
Atlassian
 
PDF
What's new with tooling for Spring, Grails, and the Cloud
martinlippert
 
PDF
Building Search for Bitbucket Cloud
Atlassian
 
PDF
Building Distributed Systems with Netflix OSS and Spring Cloud
Matt Stine
 
PDF
Spring Boot & Actuators
VMware Tanzu
 
PDF
Cloud Foundry for Spring Developers
Gunnar Hillert
 
PPTX
Spring boot - an introduction
Jonathan Holloway
 
PDF
A Series of Fortunate Events: Building an Operator in Java
VMware Tanzu
 
PDF
Simplify Cloud Applications using Spring Cloud
Ramnivas Laddad
 
PDF
Dropwizard and Groovy
tomaslin
 
PDF
Microservices with Netflix OSS and Spring Cloud - Dev Day Orange
acogoluegnes
 
PDF
The Making of the Oracle R2DBC Driver and How to Take Your Code from Synchron...
VMware Tanzu
 
PDF
Microservices with Spring and Cloud Foundry
Alain Sahli
 
PDF
Spring Boot Observability
VMware Tanzu
 
PDF
Microservice With Spring Boot and Spring Cloud
Eberhard Wolff
 
PDF
REST APIs with Spring
Joshua Long
 
PDF
Spring Boot Whirlwind Tour
VMware Tanzu
 
PPTX
Jeffrey Richter
CodeFest
 
PPTX
Containerless in the Cloud with AWS Lambda
Ryan Cuprak
 
Spring Cloud: Why? How? What?
Orkhan Gasimov
 
Shipping to Server and Cloud with Docker
Atlassian
 
What's new with tooling for Spring, Grails, and the Cloud
martinlippert
 
Building Search for Bitbucket Cloud
Atlassian
 
Building Distributed Systems with Netflix OSS and Spring Cloud
Matt Stine
 
Spring Boot & Actuators
VMware Tanzu
 
Cloud Foundry for Spring Developers
Gunnar Hillert
 
Spring boot - an introduction
Jonathan Holloway
 
A Series of Fortunate Events: Building an Operator in Java
VMware Tanzu
 
Simplify Cloud Applications using Spring Cloud
Ramnivas Laddad
 
Dropwizard and Groovy
tomaslin
 
Microservices with Netflix OSS and Spring Cloud - Dev Day Orange
acogoluegnes
 
The Making of the Oracle R2DBC Driver and How to Take Your Code from Synchron...
VMware Tanzu
 
Microservices with Spring and Cloud Foundry
Alain Sahli
 
Spring Boot Observability
VMware Tanzu
 
Microservice With Spring Boot and Spring Cloud
Eberhard Wolff
 
REST APIs with Spring
Joshua Long
 
Spring Boot Whirlwind Tour
VMware Tanzu
 
Jeffrey Richter
CodeFest
 
Containerless in the Cloud with AWS Lambda
Ryan Cuprak
 

Similar to Game of Streams: How to Tame and Get the Most from Your Messaging Platforms (20)

PDF
Drinking from the Stream: How to Use Messaging Platforms for Scalability & Pe...
VMware Tanzu
 
PDF
Drinking from the Stream: How to Use Messaging Platforms for Scalability & Pe...
VMware Tanzu
 
PDF
Drinking from the Stream: How to Use Messaging Platforms for Scalability & Pe...
VMware Tanzu
 
PPTX
Cloud Native Spring - The role of Spring Cloud after Kubernetes became a main...
Orkhan Gasimov
 
ODP
Developing Microservices using Spring - Beginner's Guide
Mohanraj Thirumoorthy
 
PPTX
Spring cloud stream overview
Nilanjan Roy
 
PPTX
Spring cloud stream overview
Nilanjan Roy
 
PDF
Microservices With Spring Boot and Spring Cloud Netflix
Krzysztof Sobkowiak
 
PDF
From Spring Boot 2.2 to Spring Boot 2.3 #jsug
Toshiaki Maki
 
PPTX
TDC2016SP - Construindo Microserviços usando Spring Cloud
tdc-globalcode
 
PPTX
TDC 2016 - Arquitetura Java - Spring Cloud
Claudio Eduardo de Oliveira
 
PDF
Stream and Batch Processing in the Cloud with Data Microservices
marius_bogoevici
 
PPTX
Sweet Streams (Are made of this)
Corneil du Plessis
 
PDF
Cloud-Native Streaming and Event-Driven Microservices
VMware Tanzu
 
PDF
Full lifecycle of a microservice
Luigi Bennardis
 
PPTX
Cloud Event Driven Architectures with Spring Cloud Stream 2.0
VMware Tanzu
 
PDF
Dataservices - Processing Big Data The Microservice Way
Josef Adersberger
 
PPTX
JavaOne: Efficiently building and deploying microservices
Bart Blommaerts
 
PDF
Microservices with Java, Spring Boot and Spring Cloud
Eberhard Wolff
 
PPTX
Data Microservices In The Cloud + 日本語コメント
Takuya Saeki
 
Drinking from the Stream: How to Use Messaging Platforms for Scalability & Pe...
VMware Tanzu
 
Drinking from the Stream: How to Use Messaging Platforms for Scalability & Pe...
VMware Tanzu
 
Drinking from the Stream: How to Use Messaging Platforms for Scalability & Pe...
VMware Tanzu
 
Cloud Native Spring - The role of Spring Cloud after Kubernetes became a main...
Orkhan Gasimov
 
Developing Microservices using Spring - Beginner's Guide
Mohanraj Thirumoorthy
 
Spring cloud stream overview
Nilanjan Roy
 
Spring cloud stream overview
Nilanjan Roy
 
Microservices With Spring Boot and Spring Cloud Netflix
Krzysztof Sobkowiak
 
From Spring Boot 2.2 to Spring Boot 2.3 #jsug
Toshiaki Maki
 
TDC2016SP - Construindo Microserviços usando Spring Cloud
tdc-globalcode
 
TDC 2016 - Arquitetura Java - Spring Cloud
Claudio Eduardo de Oliveira
 
Stream and Batch Processing in the Cloud with Data Microservices
marius_bogoevici
 
Sweet Streams (Are made of this)
Corneil du Plessis
 
Cloud-Native Streaming and Event-Driven Microservices
VMware Tanzu
 
Full lifecycle of a microservice
Luigi Bennardis
 
Cloud Event Driven Architectures with Spring Cloud Stream 2.0
VMware Tanzu
 
Dataservices - Processing Big Data The Microservice Way
Josef Adersberger
 
JavaOne: Efficiently building and deploying microservices
Bart Blommaerts
 
Microservices with Java, Spring Boot and Spring Cloud
Eberhard Wolff
 
Data Microservices In The Cloud + 日本語コメント
Takuya Saeki
 
Ad

More from VMware Tanzu (20)

PDF
Spring into AI presented by Dan Vega 5/14
VMware Tanzu
 
PDF
What AI Means For Your Product Strategy And What To Do About It
VMware Tanzu
 
PDF
Make the Right Thing the Obvious Thing at Cardinal Health 2023
VMware Tanzu
 
PPTX
Enhancing DevEx and Simplifying Operations at Scale
VMware Tanzu
 
PDF
Spring Update | July 2023
VMware Tanzu
 
PPTX
Platforms, Platform Engineering, & Platform as a Product
VMware Tanzu
 
PPTX
Building Cloud Ready Apps
VMware Tanzu
 
PDF
Spring Boot 3 And Beyond
VMware Tanzu
 
PDF
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
VMware Tanzu
 
PDF
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
VMware Tanzu
 
PDF
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
VMware Tanzu
 
PPTX
tanzu_developer_connect.pptx
VMware Tanzu
 
PDF
Tanzu Virtual Developer Connect Workshop - French
VMware Tanzu
 
PDF
Tanzu Developer Connect Workshop - English
VMware Tanzu
 
PDF
Virtual Developer Connect Workshop - English
VMware Tanzu
 
PDF
Tanzu Developer Connect - French
VMware Tanzu
 
PDF
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
VMware Tanzu
 
PDF
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
VMware Tanzu
 
PDF
SpringOne Tour: The Influential Software Engineer
VMware Tanzu
 
PDF
SpringOne Tour: Domain-Driven Design: Theory vs Practice
VMware Tanzu
 
Spring into AI presented by Dan Vega 5/14
VMware Tanzu
 
What AI Means For Your Product Strategy And What To Do About It
VMware Tanzu
 
Make the Right Thing the Obvious Thing at Cardinal Health 2023
VMware Tanzu
 
Enhancing DevEx and Simplifying Operations at Scale
VMware Tanzu
 
Spring Update | July 2023
VMware Tanzu
 
Platforms, Platform Engineering, & Platform as a Product
VMware Tanzu
 
Building Cloud Ready Apps
VMware Tanzu
 
Spring Boot 3 And Beyond
VMware Tanzu
 
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
VMware Tanzu
 
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
VMware Tanzu
 
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
VMware Tanzu
 
tanzu_developer_connect.pptx
VMware Tanzu
 
Tanzu Virtual Developer Connect Workshop - French
VMware Tanzu
 
Tanzu Developer Connect Workshop - English
VMware Tanzu
 
Virtual Developer Connect Workshop - English
VMware Tanzu
 
Tanzu Developer Connect - French
VMware Tanzu
 
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
VMware Tanzu
 
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
VMware Tanzu
 
SpringOne Tour: The Influential Software Engineer
VMware Tanzu
 
SpringOne Tour: Domain-Driven Design: Theory vs Practice
VMware Tanzu
 
Ad

Recently uploaded (20)

PDF
Enhancing Security in VAST: Towards Static Vulnerability Scanning
ESUG
 
PPTX
Web Testing.pptx528278vshbuqffqhhqiwnwuq
studylike474
 
PDF
System Center 2025 vs. 2022; What’s new, what’s next_PDF.pdf
Q-Advise
 
PDF
MiniTool Power Data Recovery Crack New Pre Activated Version Latest 2025
imang66g
 
PPTX
Employee salary prediction using Machine learning Project template.ppt
bhanuk27082004
 
PDF
Salesforce Pricing Update 2025: Impact, Strategy & Smart Cost Optimization wi...
GetOnCRM Solutions
 
PDF
Troubleshooting Virtual Threads in Java!
Tier1 app
 
PPT
Why Reliable Server Maintenance Service in New York is Crucial for Your Business
Sam Vohra
 
PPTX
GALILEO CRS SYSTEM | GALILEO TRAVEL SOFTWARE
philipnathen82
 
PDF
ChatPharo: an Open Architecture for Understanding How to Talk Live to LLMs
ESUG
 
PDF
SAP GUI Installation Guide for macOS (iOS) | Connect to SAP Systems on Mac
SAP Vista, an A L T Z E N Company
 
PPTX
Presentation about Database and Database Administrator
abhishekchauhan86963
 
PDF
Supabase Meetup: Build in a weekend, scale to millions
Carlo Gilmar Padilla Santana
 
PPTX
Role Of Python In Programing Language.pptx
jaykoshti048
 
PPTX
slidesgo-unlocking-the-code-the-dynamic-dance-of-variables-and-constants-2024...
kr2589474
 
PDF
10 posting ideas for community engagement with AI prompts
Pankaj Taneja
 
PDF
AI Image Enhancer: Revolutionizing Visual Quality”
docmasoom
 
PDF
Using licensed Data Loss Prevention (DLP) as a strategic proactive data secur...
Q-Advise
 
PDF
Protecting the Digital World Cyber Securit
dnthakkar16
 
PDF
How to Download and Install ADT (ABAP Development Tools) for Eclipse IDE | SA...
SAP Vista, an A L T Z E N Company
 
Enhancing Security in VAST: Towards Static Vulnerability Scanning
ESUG
 
Web Testing.pptx528278vshbuqffqhhqiwnwuq
studylike474
 
System Center 2025 vs. 2022; What’s new, what’s next_PDF.pdf
Q-Advise
 
MiniTool Power Data Recovery Crack New Pre Activated Version Latest 2025
imang66g
 
Employee salary prediction using Machine learning Project template.ppt
bhanuk27082004
 
Salesforce Pricing Update 2025: Impact, Strategy & Smart Cost Optimization wi...
GetOnCRM Solutions
 
Troubleshooting Virtual Threads in Java!
Tier1 app
 
Why Reliable Server Maintenance Service in New York is Crucial for Your Business
Sam Vohra
 
GALILEO CRS SYSTEM | GALILEO TRAVEL SOFTWARE
philipnathen82
 
ChatPharo: an Open Architecture for Understanding How to Talk Live to LLMs
ESUG
 
SAP GUI Installation Guide for macOS (iOS) | Connect to SAP Systems on Mac
SAP Vista, an A L T Z E N Company
 
Presentation about Database and Database Administrator
abhishekchauhan86963
 
Supabase Meetup: Build in a weekend, scale to millions
Carlo Gilmar Padilla Santana
 
Role Of Python In Programing Language.pptx
jaykoshti048
 
slidesgo-unlocking-the-code-the-dynamic-dance-of-variables-and-constants-2024...
kr2589474
 
10 posting ideas for community engagement with AI prompts
Pankaj Taneja
 
AI Image Enhancer: Revolutionizing Visual Quality”
docmasoom
 
Using licensed Data Loss Prevention (DLP) as a strategic proactive data secur...
Q-Advise
 
Protecting the Digital World Cyber Securit
dnthakkar16
 
How to Download and Install ADT (ABAP Development Tools) for Eclipse IDE | SA...
SAP Vista, an A L T Z E N Company
 

Game of Streams: How to Tame and Get the Most from Your Messaging Platforms