Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Swarrot, a library to consume them all!
Search
Olivier Dolbeau
October 20, 2015
Programming
0
370
Swarrot, a library to consume them all!
Talk given at BlaBlaCar Tech Meetup in Warsaw
Olivier Dolbeau
October 20, 2015
Tweet
Share
More Decks by Olivier Dolbeau
See All by Olivier Dolbeau
Jane & Webby
odolbeau
0
290
Translating a monolingual application
odolbeau
2
390
DX: Developer eXperience
odolbeau
0
50
DX: Developer eXperience
odolbeau
0
390
EasyAdminBundle introduction
odolbeau
0
130
REX API Platform
odolbeau
0
1k
Features flags at BlaBlaCar
odolbeau
4
820
25+ million members in 22 countries, how to scale with Symfony2
odolbeau
1
380
Be gentle with your prod!
odolbeau
1
590
Other Decks in Programming
See All in Programming
GitHub Copilotのススメ
marcy731
1
200
Site Reliability Engineering for GMO
pyama86
8
1k
新宿ダンジョンを可視化してみた
satoshi7190
2
250
ゆるい個人開発のススメ
kuroppe1819
10
990
Elm 0.19.0 Changes
bkuhlmann
0
490
冗長なエラーログを削減し、スタックトレースを手に入れる / Reducing Verbose Error Logs and Obtaining Stack Traces
upamune
0
540
単体テストを書かない技術 #phpcon_odawara
o0h
PRO
27
8.2k
educure_カリキュラム生操作マニュアル.pdf
linew_official
0
760
スキーマ駆動開発による品質とスピードの両立 - 私達は何故、スキーマを書くのか
kentaroutakeda
0
170
データアナリストが行うDatabricksを活用したETLの自動化事例
shinoa
0
270
GitHub Actionsで泣かないためにやっておきたい設定 / Recommended GHA settings to avoid crying
pinkumohikan
3
530
SwiftUIで使いやすいToastの作り方 / How to build a Toast system which is easy to use in SwiftUI
lovee
3
140
Featured
See All Featured
GraphQLとの向き合い方2022年版
quramy
32
12k
Scaling GitHub
holman
457
140k
Facilitating Awesome Meetings
lara
42
5.6k
Agile that works and the tools we love
rasmusluckow
325
20k
A Tale of Four Properties
chriscoyier
151
22k
Fashionably flexible responsive web design (full day workshop)
malarkey
398
65k
Why Our Code Smells
bkeepers
PRO
331
56k
Optimising Largest Contentful Paint
csswizardry
8
2.4k
The Pragmatic Product Professional
lauravandoore
25
5.8k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
227
16k
Making the Leap to Tech Lead
cromwellryan
124
8.5k
Navigating Team Friction
lara
178
13k
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