SlideShare a Scribd company logo
1 of 48
Download to read offline
The Messenger
Symfony Component
Do CQRS they say, it’s cool!
Žilvinas Kuusas / VilniusPHP 0x5d
Žilvinas Kuusas
Software engineer since 2004
Currently DevOps @ Dokobit
You may know me from: VilniusPHP.lt,
NoTrollsAllowed.com, Symfony.lt, CleanPHP.lt ...
linkedin.com/in/kuusas
About me
Electronic document signing platform
Biggest in Baltic countries and Iceland.
Expanding in Norway, Sweden, Poland…
Currently have 15+ open job positions.
Today’s talk overview
Some Design Patterns
How to start using The Messenger Component
Do crazy things with your Business Context
Command Bus Pattern
Remind what is it, draw nice picture
Command Bus benefits
Command Bus Pattern
Why we should use it?
- Decoupled
- Testable
- Extendable
Downsides
- Complexity
CQRS
Draw nice pic,
Remind what is that
How to CQRS CRUD application?
Don’t.
The Messenger
The Messenger
Simple yet very powerful and flexible message bus manager.
“The Messenger component helps applications send
and receive messages to/from other applications
or via message queues.”
Concepts
Command
What To Do?
The message you want to pass to the bus.
Message will be consumed and handled the way command bus
is configured.
Message Bus
Where To Execute?
An ordered set of middlewares:
1. messenger.middleware.add_bus_name_stamp_middleware
2. messenger.middleware.dispatch_after_current_bus
3. messenger.middleware.failed_message_processing_middleware
4. … custom middlewares...
5. messenger.middleware.send_message
6. messenger.middleware.handle_message
Message Bus
$handler = new MyMessageHandler();
$bus = new MessageBus([
new HandleMessageMiddleware(new HandlersLocator([
MyMessage::class => [$handler],
])),
]);
$bus->dispatch(new MyMessage(/* ... */));
Message Bus
Nice pic
Software in-the-middle.
Can access the message and its wrapper.
No business logic.
Affects entire bus flow.
Middleware
Validate messages
Drop messages
Log messages
Middleware are called both when a message is originally
dispatched and again later when a message is received from a
transport,
Middleware
Handler
What To Do?
The command executor, the business model…
Each Command should have One Handler.
Events
Command should execute single task
All the secondary tasks should be decoupled using Event
Start Using It
Step 1: install
$ composer require symfony/messenger
Step 2: create command
Step 3: create handler
Step 4: dispatch command
Step 5: test
Step 6: async
config/packages/messenger.yml
Step 7: test
Step 8: consume
Step 9: multiple transports
Step 10: getting result from bus
Step 11: multiple buses
Multiple Buses
- Command Bus: no result, async
- Query Bus: wait for result, sync
- Event Bus: separate action from reaction
Each bus has it’s own:
- Handlers
- Set of Middlewares
Why use Messenger for
Command Bus?
It’s simple to start.
Why use Messenger for
Query Bus?
It’s simple to start.
Why use Messenger for
Event Bus?
It’s simple to start.
Transports
- Async/Queued Messages
- AMQP
- Doctrine
- Redis
- In memory
- Your own transport (API…)
- Synchronous
Why Messenger?
- Easy to start
- Easy to use different transport mechanisms (rabbitmq,
redis, APIs)
- Becomes more powerful accompanied with other
Symfony components:
- Dependency Injection
- Serializer
- Event Dispatcher
Why Messenger?
Additional outcomes:
- Audit Logs
- Isolated contexts
- Microservices
Messenger in
Business Context
Business Context
We have three departments: warehouse, client relations and
the accountants.
Warehouse manages product and the stock.
Client relations department - knows everything about their
customers.
Accountants - the billing department, takes care of finances.
Problem to solve
We need to send the invoice to the client when he orders the
product.
We are
hiring!
15+ open positions
Ačiū!
Klausimai / Idėjos ?
Resources
https://symfony.com/doc/current/components/messenger.html
https://matthiasnoback.nl/2015/01/from-commands-to-events/
https://karoldabrowski.com/blog/query-bus-in-symfony-application/
https://symfonycasts.com/screencast/messenger/install
https://martinfowler.com/bliki/CQRS.html
https://udidahan.com/2009/12/09/clarified-cqrs/

More Related Content

What's hot

What's hot (20)

Webhooks
WebhooksWebhooks
Webhooks
 
Microservice Architecture using Spring Boot with React & Redux
Microservice Architecture using Spring Boot with React & ReduxMicroservice Architecture using Spring Boot with React & Redux
Microservice Architecture using Spring Boot with React & Redux
 
React + Redux Introduction
React + Redux IntroductionReact + Redux Introduction
React + Redux Introduction
 
Introduction to node.js
Introduction to node.jsIntroduction to node.js
Introduction to node.js
 
Node js introduction
Node js introductionNode js introduction
Node js introduction
 
Introduction to Jhipster
Introduction to JhipsterIntroduction to Jhipster
Introduction to Jhipster
 
Complete MVC on NodeJS
Complete MVC on NodeJSComplete MVC on NodeJS
Complete MVC on NodeJS
 
Micro-frontends – is it a new normal?
Micro-frontends – is it a new normal?Micro-frontends – is it a new normal?
Micro-frontends – is it a new normal?
 
Micro-frontend
Micro-frontendMicro-frontend
Micro-frontend
 
Midi technique - présentation docker
Midi technique - présentation dockerMidi technique - présentation docker
Midi technique - présentation docker
 
Domain Driven Design
Domain Driven Design Domain Driven Design
Domain Driven Design
 
Web Service API Odoo - android
Web Service API Odoo - androidWeb Service API Odoo - android
Web Service API Odoo - android
 
Three.js basics
Three.js basicsThree.js basics
Three.js basics
 
React JS
React JSReact JS
React JS
 
webpack 101 slides
webpack 101 slideswebpack 101 slides
webpack 101 slides
 
Introduction Node.js
Introduction Node.jsIntroduction Node.js
Introduction Node.js
 
Docker.pptx
Docker.pptxDocker.pptx
Docker.pptx
 
React / Redux Architectures
React / Redux ArchitecturesReact / Redux Architectures
React / Redux Architectures
 
"Micro-frontends, web development", Oleksandr Khivrych
"Micro-frontends, web development", Oleksandr Khivrych"Micro-frontends, web development", Oleksandr Khivrych
"Micro-frontends, web development", Oleksandr Khivrych
 
Présentation Docker
Présentation DockerPrésentation Docker
Présentation Docker
 

Similar to Use Symfony Messenger Component and CQRS!

Monitoring Tools Consultant
Monitoring Tools ConsultantMonitoring Tools Consultant
Monitoring Tools ConsultantSumit Kumar
 
Symfony 4: A new way to develop applications #phpsrb
 Symfony 4: A new way to develop applications #phpsrb Symfony 4: A new way to develop applications #phpsrb
Symfony 4: A new way to develop applications #phpsrbAntonio Peric-Mazar
 
Windows 8 Metro Apps with XAML @ GRDevDay
Windows 8 Metro Apps with XAML @ GRDevDayWindows 8 Metro Apps with XAML @ GRDevDay
Windows 8 Metro Apps with XAML @ GRDevDaySam Basu
 
The Art of Message Queues - TEKX
The Art of Message Queues - TEKXThe Art of Message Queues - TEKX
The Art of Message Queues - TEKXMike Willbanks
 
Windows 8 Metro Apps
Windows 8 Metro AppsWindows 8 Metro Apps
Windows 8 Metro AppsSam Basu
 
Symfony 4: A new way to develop applications #ipc19
Symfony 4: A new way to develop applications #ipc19Symfony 4: A new way to develop applications #ipc19
Symfony 4: A new way to develop applications #ipc19Antonio Peric-Mazar
 
Why we choose Symfony2
Why we choose Symfony2Why we choose Symfony2
Why we choose Symfony2Merixstudio
 
Scaling and Embracing Failure: Clustering Docker with Mesos
Scaling and Embracing Failure: Clustering Docker with MesosScaling and Embracing Failure: Clustering Docker with Mesos
Scaling and Embracing Failure: Clustering Docker with MesosRob Gulewich
 
Openbar 5 - Leuven - Automating everything with Ansible - Piros
Openbar 5 - Leuven - Automating everything with Ansible - PirosOpenbar 5 - Leuven - Automating everything with Ansible - Piros
Openbar 5 - Leuven - Automating everything with Ansible - PirosOpenbar
 
What is Mule ESB
What is Mule ESB What is Mule ESB
What is Mule ESB Nam Le Dinh
 
Develop modern apps using Spring ecosystem at time of BigData
Develop modern apps using Spring ecosystem at time of BigData Develop modern apps using Spring ecosystem at time of BigData
Develop modern apps using Spring ecosystem at time of BigData Oleg Tsal-Tsalko
 
Raspberry pi performace and program by open cv
Raspberry pi performace and program by open cvRaspberry pi performace and program by open cv
Raspberry pi performace and program by open cvKazuhiko Inaba
 
Plug yourself in and your app will never be the same (1 hr edition)
Plug yourself in and your app will never be the same (1 hr edition)Plug yourself in and your app will never be the same (1 hr edition)
Plug yourself in and your app will never be the same (1 hr edition)Mikkel Flindt Heisterberg
 
Mazda siv - web services
Mazda   siv - web servicesMazda   siv - web services
Mazda siv - web servicesOlivier Lépine
 
Introduction to Apache Camel
Introduction to Apache CamelIntroduction to Apache Camel
Introduction to Apache CamelKnoldus Inc.
 

Similar to Use Symfony Messenger Component and CQRS! (20)

Monitoring Tools Consultant
Monitoring Tools ConsultantMonitoring Tools Consultant
Monitoring Tools Consultant
 
Symfony 4: A new way to develop applications #phpsrb
 Symfony 4: A new way to develop applications #phpsrb Symfony 4: A new way to develop applications #phpsrb
Symfony 4: A new way to develop applications #phpsrb
 
Windows 8 Metro Apps with XAML @ GRDevDay
Windows 8 Metro Apps with XAML @ GRDevDayWindows 8 Metro Apps with XAML @ GRDevDay
Windows 8 Metro Apps with XAML @ GRDevDay
 
The Art of Message Queues - TEKX
The Art of Message Queues - TEKXThe Art of Message Queues - TEKX
The Art of Message Queues - TEKX
 
Windows 8 Metro Apps
Windows 8 Metro AppsWindows 8 Metro Apps
Windows 8 Metro Apps
 
Symfony 4: A new way to develop applications #ipc19
Symfony 4: A new way to develop applications #ipc19Symfony 4: A new way to develop applications #ipc19
Symfony 4: A new way to develop applications #ipc19
 
Why we choose Symfony2
Why we choose Symfony2Why we choose Symfony2
Why we choose Symfony2
 
Scaling and Embracing Failure: Clustering Docker with Mesos
Scaling and Embracing Failure: Clustering Docker with MesosScaling and Embracing Failure: Clustering Docker with Mesos
Scaling and Embracing Failure: Clustering Docker with Mesos
 
Art Of Message Queues
Art Of Message QueuesArt Of Message Queues
Art Of Message Queues
 
Openbar 5 - Leuven - Automating everything with Ansible - Piros
Openbar 5 - Leuven - Automating everything with Ansible - PirosOpenbar 5 - Leuven - Automating everything with Ansible - Piros
Openbar 5 - Leuven - Automating everything with Ansible - Piros
 
DevOps demystified
DevOps demystifiedDevOps demystified
DevOps demystified
 
Mule esb
Mule esbMule esb
Mule esb
 
TRWResume-10-2016
TRWResume-10-2016TRWResume-10-2016
TRWResume-10-2016
 
What is Mule ESB
What is Mule ESB What is Mule ESB
What is Mule ESB
 
Develop modern apps using Spring ecosystem at time of BigData
Develop modern apps using Spring ecosystem at time of BigData Develop modern apps using Spring ecosystem at time of BigData
Develop modern apps using Spring ecosystem at time of BigData
 
Message Broker System and RabbitMQ
Message Broker System and RabbitMQMessage Broker System and RabbitMQ
Message Broker System and RabbitMQ
 
Raspberry pi performace and program by open cv
Raspberry pi performace and program by open cvRaspberry pi performace and program by open cv
Raspberry pi performace and program by open cv
 
Plug yourself in and your app will never be the same (1 hr edition)
Plug yourself in and your app will never be the same (1 hr edition)Plug yourself in and your app will never be the same (1 hr edition)
Plug yourself in and your app will never be the same (1 hr edition)
 
Mazda siv - web services
Mazda   siv - web servicesMazda   siv - web services
Mazda siv - web services
 
Introduction to Apache Camel
Introduction to Apache CamelIntroduction to Apache Camel
Introduction to Apache Camel
 

More from Žilvinas Kuusas

Ansible: infrastructure automation for everyone
Ansible: infrastructure automation for everyoneAnsible: infrastructure automation for everyone
Ansible: infrastructure automation for everyoneŽilvinas Kuusas
 
Automated cryptocurrency trading
Automated cryptocurrency tradingAutomated cryptocurrency trading
Automated cryptocurrency tradingŽilvinas Kuusas
 
Continuously delivering value
Continuously delivering valueContinuously delivering value
Continuously delivering valueŽilvinas Kuusas
 
Baby steps to Domain-Driven Design
Baby steps to Domain-Driven DesignBaby steps to Domain-Driven Design
Baby steps to Domain-Driven DesignŽilvinas Kuusas
 
Using Capifony for Symfony apps deployment (updated)
Using Capifony for Symfony apps deployment (updated)Using Capifony for Symfony apps deployment (updated)
Using Capifony for Symfony apps deployment (updated)Žilvinas Kuusas
 
Using Capifony for Symfony apps deployment.
Using Capifony for Symfony apps deployment.Using Capifony for Symfony apps deployment.
Using Capifony for Symfony apps deployment.Žilvinas Kuusas
 

More from Žilvinas Kuusas (10)

Ansible: infrastructure automation for everyone
Ansible: infrastructure automation for everyoneAnsible: infrastructure automation for everyone
Ansible: infrastructure automation for everyone
 
Automated cryptocurrency trading
Automated cryptocurrency tradingAutomated cryptocurrency trading
Automated cryptocurrency trading
 
Continuous delivery
Continuous deliveryContinuous delivery
Continuous delivery
 
Continuously delivering value
Continuously delivering valueContinuously delivering value
Continuously delivering value
 
Code reviews
Code reviewsCode reviews
Code reviews
 
Baby steps to Domain-Driven Design
Baby steps to Domain-Driven DesignBaby steps to Domain-Driven Design
Baby steps to Domain-Driven Design
 
Community and open source
Community and open sourceCommunity and open source
Community and open source
 
Using Capifony for Symfony apps deployment (updated)
Using Capifony for Symfony apps deployment (updated)Using Capifony for Symfony apps deployment (updated)
Using Capifony for Symfony apps deployment (updated)
 
Using Capifony for Symfony apps deployment.
Using Capifony for Symfony apps deployment.Using Capifony for Symfony apps deployment.
Using Capifony for Symfony apps deployment.
 
Microservice architecture
Microservice architectureMicroservice architecture
Microservice architecture
 

Recently uploaded

Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 

Recently uploaded (20)

Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 

Use Symfony Messenger Component and CQRS!