Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Swarrot, a library to consume them all!
Search
Olivier Dolbeau
October 20, 2015
Programming
490
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Swarrot, a library to consume them all!
Talk given at BlaBlaCar Tech Meetup in Warsaw
Olivier Dolbeau
October 20, 2015
More Decks by Olivier Dolbeau
See All by Olivier Dolbeau
Throw new \Exception(); Oui, mais laquelle ?
odolbeau
1
350
Jane & Webby
odolbeau
0
530
Translating a monolingual application
odolbeau
2
710
DX: Developer eXperience
odolbeau
1
140
DX: Developer eXperience
odolbeau
1
600
EasyAdminBundle introduction
odolbeau
0
270
REX API Platform
odolbeau
0
1.4k
Features flags at BlaBlaCar
odolbeau
5
1.2k
25+ million members in 22 countries, how to scale with Symfony2
odolbeau
2
690
Other Decks in Programming
See All in Programming
SalesForceを内製化!? ~ HR事業を支える顧客管理基盤のインフラを大公開 ~
oku053
0
150
大喜利で理解するLLM as a Judge / Understanding LLM-as-a-Judge through Ogiri
rockname
0
190
re:Inventに行く前に知っておきたい現地参加のノウハウ
nokomoro3
0
380
Turning Architecture into Unit Tests in the AI Era (NSSpain XIV)
steliosf
PRO
1
130
GemmaをJevのように使ってみる / Use Gemma like Jev
kishida
5
720
Simple Storage Service(S3) is not simple
iwatsukayura
0
220
動作中のプログラムの中身をリアルタイムに覗く / Realtime Debugger for CSharp with Roslyn
prota
1
1.8k
プロダクトコードからライブラリの境界を見つける
elmetal
PRO
0
110
Unity6 URPによる海底をテーマにしたVJシステムの解説 | Unity Shader 完全に理解した 勉強会
gam0022
0
340
Agents on Rails - Rails at Scale 2026
irinanazarova
0
350
パズルゲームの作り方 / how to make puzzle games
kaityo256
PRO
2
270
月間100万人のサービス刷新で、 技術選定をHonoに振り切った話
yutobara
2
3.7k
Featured
See All Featured
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.6k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
490
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
510
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
290
Claude Code のすすめ
schroneko
67
230k
How to build a perfect <img>
jonoalderson
1
6.1k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
450
Designing Experiences People Love
moore
143
24k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
33
5.1k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
2
2k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.8k
Agile that works and the tools we love
rasmusluckow
331
22k
Transcript
None
@odolbeau Web Architect Olivier Dolbeau
None
What happens when you publish a trip?
We send an email to the driver. We index the
trip in ElasticSearch. We send the comment to moderation spooler. We store all relevant informations in Hadoop for BI.
I’m gonna sleep, tell me when you’re done!
None
None
“RabbitMQ is a message broker. The principal idea is pretty
simple: it accepts and forwards messages.”
Publisher Queue1 Exchange Queue2 Queue3 Consumer Consumer Consumer Consumer RabbitMQ
What happens when you publish a trip?
We send an email to the driver. We index the
trip in ElasticSearch. We sent the comment in moderation. We store all relevant informations in Hadoop for BI.
RabbitMQ Application mail publication indexation bi Consumer mail Consumer bi
Consumer indexation Consumer moderation moderation
So cool!
That’s fast! At least for the user.
We have several small applications.
We can scale!
Problems...
Long running processes.
Expect errors. Deal with them. • Catch them! • Retry
when needed. • Don’t stop your consumer.
Your worker need to be stopped correctly.
None
Goals
Solve mentioned problems.
Be able to change the broker used.
Implementation
We need a MessageProvider. We use the pecl extension.
Here is our “business” logic.
Let’s consume them all!
Encapsulation FTW! <3
Let’s create a stack.
The result.
None
Used in production.
None
Sometimes, dealing with consumers can be a pain...
Use a message broker, that’s awesome!
Sometimes, dealing with consumers can be a pain, BUT you
should definitively use a Message Broker! <3 Olivier Dolbeau @odolbeau