SlideShare a Scribd company logo
David Heath
Publishing platform team

Government Digital Service
GDSPublishing platform team
Transaction log prototype
2GDSPublishing platform team
Why?
3GDSPublishing platform team
Complexity
4GDSPublishing platform team
many bugs...
5GDSPublishing platform team
* many bugs and issues which we’ve experienced have been related to that
It's a master copy
of every change or
transaction
6GDSPublishing platform team
It’s an audit log
7GDSPublishing platform team
a feature we’d really like to have
Future-proof
8GDSPublishing platform team
if we have a log of every operation, it’s easy to adapt to possible future requirements, because we can easily add new “derived representations”
What is a derived
representation?
9GDSPublishing platform team
Bank account
10GDSPublishing platform team
Date Description Amount
1/9/2015 Initial deposit £50
Balance: £50
Bank account
11GDSPublishing platform team
Date Description Amount
1/9/2015 Initial deposit £50
2/9/2015 Pod Ltd -£4.99
Balance: £45.01
Bank account
12GDSPublishing platform team
Date Description Amount
1/9/2015 Initial deposit £50
2/9/2015 Pod Ltd -£4.99
3/9/2015 Cheque 003 £20
Balance: £65.01
Bank account
13GDSPublishing platform team
Date Description Amount
1/9/2015 Initial deposit £50
2/9/2015 Pod Ltd -£4.99
3/9/2015 Cheque 003 £20
Balance: £65.01
Derived representation
In publishing…
GDSPublishing platform team
Event Log
In publishing…
GDSPublishing platform team
Event Log
Current documents
In publishing…
GDSPublishing platform team
Event Log
Current documents
History of published documents
In publishing…
GDSPublishing platform team
Event Log
Current documents
History of published documents
Editorial history and comments
GDSPublishing platform team
Event Log
Current documents
History of
published
documents
Editorial history
and comments
Admin elasticsearch index
Message on message queue (asynchronous update)
(separate service/data store)
(Synchronously updated)Publishing API
* Derived representations may be in separate systems
* Some things need to be updated synchronously, those would need to be in the same data store and updated using a database transaction to guarantee consistency.
What we did in the prototype
19GDSPublishing platform team
What we did in the prototype
• event log
20GDSPublishing platform team
What we did in the prototype
• event log
• commands (for modification)
21GDSPublishing platform team
What we did in the prototype
• event log
• commands (for modification)
• queries (read from derived
representation)
22GDSPublishing platform team
What we did in the prototype
• event log
• commands (for modification)
• queries (read from derived
representation)
• wired up to policy publisher
23GDSPublishing platform team
24GDSPublishing platform team
we used postgresql because it’s awesome
- real transactions
- JSON data type
Show me some code!
25GDSPublishing platform team
Remaining questions
26GDSPublishing platform team
• conceptual model of editing/
workflow
Remaining questions
27GDSPublishing platform team
• conceptual model of editing/
workflow
• how much validation?
• use schemas?
Remaining questions
28GDSPublishing platform team
• conceptual model of editing/
workflow
• how much validation?
• use schemas?
• write performance
Remaining questions
29GDSPublishing platform team
• conceptual model of editing/
workflow
• how much validation?
• use schemas?
• write performance
• replay, snapshotting etc
David Heath
Publishing platform team

Government Digital Service
GDSPublishing platform team

More Related Content

PPTX
vodQA Pune (2019) - Insights into big data testing
PPTX
Hyperledger composer (from zero to hero )
PPTX
Google Cloud Certifications & Machine Learning
PDF
Apiconf - Doc Driven Development
PDF
Apiconf - The perfect REST solution
PDF
Serverless meets GraphQL
PDF
[Nuxeo World 2013] A DOCUMENT ACQUISITION SOLUTION FOR THE NUXEO PLATFORM - S...
PDF
GraphConnect 2014 SF: How eBay and Shutl Deliver Even Faster Using Neo4j
vodQA Pune (2019) - Insights into big data testing
Hyperledger composer (from zero to hero )
Google Cloud Certifications & Machine Learning
Apiconf - Doc Driven Development
Apiconf - The perfect REST solution
Serverless meets GraphQL
[Nuxeo World 2013] A DOCUMENT ACQUISITION SOLUTION FOR THE NUXEO PLATFORM - S...
GraphConnect 2014 SF: How eBay and Shutl Deliver Even Faster Using Neo4j

What's hot (15)

PDF
Serverless and GraphQL
PDF
The Graph-Native Advantage
PDF
Migration of a high-traffic E-commerce website from Legacy Monolith to Micros...
PDF
Cas d'usage ProtoStellar Cloud replatforming de l'application 1Logistic pour...
PPTX
Kubernetes: Increasing velocity without sacrificing quality
PPTX
IV Technology Workshop GFT - AWS Serverless Architecture
PDF
Enterprise graph applications
PPTX
Alexander Andelkovic. Comaqa Spring 2018. Using Artificial Intelligence to Te...
PDF
Process Automation: an Update from the Trenches
PPTX
Kimmo Hakala. Comaqa Spring 2018. Challenges and good QA practices in softwar...
ODP
Diffy gets enterprise grade
PPTX
Enterprise Microservices
PPTX
Embedded Projects in GlobalLogic: News from the Front Line
PDF
Laptop Devops: Putting Modern Infrastructure Automation to Work For Local Dev...
PPTX
BizTalk and Hybrid Integration
Serverless and GraphQL
The Graph-Native Advantage
Migration of a high-traffic E-commerce website from Legacy Monolith to Micros...
Cas d'usage ProtoStellar Cloud replatforming de l'application 1Logistic pour...
Kubernetes: Increasing velocity without sacrificing quality
IV Technology Workshop GFT - AWS Serverless Architecture
Enterprise graph applications
Alexander Andelkovic. Comaqa Spring 2018. Using Artificial Intelligence to Te...
Process Automation: an Update from the Trenches
Kimmo Hakala. Comaqa Spring 2018. Challenges and good QA practices in softwar...
Diffy gets enterprise grade
Enterprise Microservices
Embedded Projects in GlobalLogic: News from the Front Line
Laptop Devops: Putting Modern Infrastructure Automation to Work For Local Dev...
BizTalk and Hybrid Integration
Ad

Similar to 2015 09-02 - transaction log prototype (20)

PDF
Apache Flink Adoption at Shopify
PPTX
A Big (Query) Frog in a Small Pond, Jakub Motyl, BuffPanel
PPTX
Data Pipelines - Big Data meets Salesforce
PPTX
2020-02-buy-flow-spaq about spaq at godaddy
PDF
Big Data Ready Enterprise
PDF
SaaS - Software as a Service - Charles University - Prague - March 2013
PDF
Lambda Architectures in Practice
PDF
SOA Knowledge Kit, Developer Productivity and Performance Comparison Analysis
PDF
Drools & jBPM Workshop Barcelona 2013
PDF
Application development using the wso2 developer studio
PDF
Building Data Products with BigQuery for PPC and SEO (SMX 2022)
PDF
Building a Data Warehouse for Business Analytics using Spark SQL-(Blagoy Kalo...
PDF
Thinking DevOps in the era of the Cloud - Demi Ben-Ari
PDF
CDS + Power Apps
PDF
Serverless projects at Myplanet
PDF
How to build unified Batch & Streaming Pipelines with Apache Beam and Dataflow
PDF
Your Roadmap for An Enterprise Graph Strategy
PPTX
DevOps for SAP CPI presentation
PPTX
Neo4j GraphTour New York_EY Presentation_Michael Moore
PPTX
Brisbane MuleSoft Meetup 2023-03-22 - Anypoint Code Builder and Splunk Loggin...
Apache Flink Adoption at Shopify
A Big (Query) Frog in a Small Pond, Jakub Motyl, BuffPanel
Data Pipelines - Big Data meets Salesforce
2020-02-buy-flow-spaq about spaq at godaddy
Big Data Ready Enterprise
SaaS - Software as a Service - Charles University - Prague - March 2013
Lambda Architectures in Practice
SOA Knowledge Kit, Developer Productivity and Performance Comparison Analysis
Drools & jBPM Workshop Barcelona 2013
Application development using the wso2 developer studio
Building Data Products with BigQuery for PPC and SEO (SMX 2022)
Building a Data Warehouse for Business Analytics using Spark SQL-(Blagoy Kalo...
Thinking DevOps in the era of the Cloud - Demi Ben-Ari
CDS + Power Apps
Serverless projects at Myplanet
How to build unified Batch & Streaming Pipelines with Apache Beam and Dataflow
Your Roadmap for An Enterprise Graph Strategy
DevOps for SAP CPI presentation
Neo4j GraphTour New York_EY Presentation_Michael Moore
Brisbane MuleSoft Meetup 2023-03-22 - Anypoint Code Builder and Splunk Loggin...
Ad

More from David Heath (6)

PDF
Whitehall a potted history (2016 version)
PDF
Liberating structures at Agile on the Beach 2019
PDF
Liberating structures at Agile in the City 2019
PDF
Liberating Structures workshop at Lean Agile Scotland 2018
PDF
Liberating Structures at Digital Project Managers London October 2018
PDF
Gov.uk content schemas tech monthly may 2015
Whitehall a potted history (2016 version)
Liberating structures at Agile on the Beach 2019
Liberating structures at Agile in the City 2019
Liberating Structures workshop at Lean Agile Scotland 2018
Liberating Structures at Digital Project Managers London October 2018
Gov.uk content schemas tech monthly may 2015

Recently uploaded (20)

PDF
PTS Company Brochure 2025 (1).pdf.......
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PDF
wealthsignaloriginal-com-DS-text-... (1).pdf
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
System and Network Administration Chapter 2
PPT
Introduction Database Management System for Course Database
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PDF
medical staffing services at VALiNTRY
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PPTX
Operating system designcfffgfgggggggvggggggggg
PPTX
Transform Your Business with a Software ERP System
PDF
Designing Intelligence for the Shop Floor.pdf
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PPTX
Computer Software and OS of computer science of grade 11.pptx
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PTS Company Brochure 2025 (1).pdf.......
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
Which alternative to Crystal Reports is best for small or large businesses.pdf
wealthsignaloriginal-com-DS-text-... (1).pdf
Internet Downloader Manager (IDM) Crack 6.42 Build 41
System and Network Administration Chapter 2
Introduction Database Management System for Course Database
How to Choose the Right IT Partner for Your Business in Malaysia
medical staffing services at VALiNTRY
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
Operating system designcfffgfgggggggvggggggggg
Transform Your Business with a Software ERP System
Designing Intelligence for the Shop Floor.pdf
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
Design an Analysis of Algorithms I-SECS-1021-03
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
Computer Software and OS of computer science of grade 11.pptx
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025

2015 09-02 - transaction log prototype