SLIDE 1 Sadek Drobi
prismic.io CEO & Co-founder Playframework Co-creator @sadache
Taming Failures by Partitioning Time and Space
SLIDE 2
prismic.io, a snappy tour
SLIDE 3 Building a Website with dynamic content is a pain
No content management Use CMS building blocks and plugins Use a visual builder tool
<style> h1 { font-family: ‘Aller’ } </style> <h1> Change your world now! </h1>
SLIDE 4
prismic.io is a new way to bring your website content alive
SLIDE 5 prismic.io is a new way to bring your website content alive
Simple Web API to consume content Content management backoffice
SLIDE 6
Content is Central to Websites
SLIDE 7 Business Wise
- Offer Performance and Reliability
- Excel where every CMS fails
SLIDE 8
First, we need to understand the impact of system failure.
SLIDE 9 Impact of System Failure
- Writing Room: No edit, save or publish
- API: No end-user website
SLIDE 10 Impact of System Failure
- Writing Room: No edit, save or publish
- API: No end-user website
SLIDE 11 System Requirements From a Macro Perspective
- Concurrent Write
- Concurrent Read
- Redundant
- Reliable and available
- Consistent
SLIDE 12
System Requirements From a Macro Perspective
SLIDE 13
CAP says no!
SLIDE 14
Let’s Talk about Time
SLIDE 15
Observe time ticks
SLIDE 16
Observe time ticks
SLIDE 17
Two different universes, two different times
SLIDE 18 Authors write some content On Publish, Content is displayed on website
SLIDE 19 Writer universe Viewer universe
Two different universes, two different times
SLIDE 20 publish Data Extraction API
On publish event, we update API system time
SLIDE 21 publish Data Extraction API
If Writing Room goes down, API isn’t affected
SLIDE 22
We Can Do Even Better
SLIDE 23 publish Data Extraction API
Clients APIs can be time decoupled too!
publish Data Extraction API publish Data Extraction API
SLIDE 24 S3 publish publish publish
Infrastructure wise
SLIDE 25 publish
We use Apache Lucene for our API
Ready to download, zipped Lucene Index download
SLIDE 26 S3
Server Failure?
SLIDE 27
Elastic?
SLIDE 28
Do we need traffic officers or traffic lights here?
SLIDE 29
Applying the Same on the Writing Room
SLIDE 30
SLIDE 31 Interactive Read/Write
Once a week to post a blog post Did not connect for weeks Does not connect anymore Giant database x100.000 repositories Two hours a day to update news
SLIDE 32
SLIDE 33
SLIDE 34
Do we really need to keep everything here in case of?
SLIDE 35
SLIDE 36 Each repository has it own lifecycle
Databases Book Redundent Cloud storage Wake up on demand Archive when idle
SLIDE 37 Infrastructure wise
S3 snapshots logs
SLIDE 38
Clusters
Data Migration Functionality A/B Testing
SLIDE 39
Observe time ticks
SLIDE 40 Solves
- Scalable space-efficient infrastructure
- Data migration and versioning (avoid
stop-the-world migrations)
- Multiple production environments (with
multiple data versions)
- Testing new functionalities
SLIDE 41 System Requirements From a Macro Perspective
- Concurrent Write
- Concurrent Read
- Redundant
- Reliable and available
- Consistent
SLIDE 42
Scalability is not a buzzword you can put on a slide nor A technology you can purchase
SLIDE 43