SlideShare a Scribd company logo
1 of 17
Download to read offline
Hipster batch
making batch processing cool again
HTTP Microservices
One solution does not fit all problems
Batch processing
+
batch processing
+
REST with
hypermedia
+
metadata
=
hipster batch
REST
● Representational State Transfer
● Modelled on HTTP resource verbs (GET,
POST, PUT etc)
● No reason for resources to be dynamic
Hipster batch
Step 1:
Scheduled scale from 0 to 1
(using “autoscaling” feature)
Step 2:
Process data (CSV files, SQL query)
Hipster batch
Step 3:
Write output to S3 with hypermedia links to
allow files to be navigated by a consumer
Hipster batch
HTTP:
open(“http://some-service”) { | file | file.read }
S3:
open(“s3://some-bucket/index.json”) { | file | file.read }
{
"_links": {
"self": {
"href": "s3://rea-reporting/revenue/customer/index.json"
},
"all": [
{
"href": "s3://rea-reporting/revenue/customer/ancestry-latest-by-
month/2015-02.json"
},
{
"href": "s3://rea-reporting/revenue/customer/ancestry-latest-by-
month/2015-03.json"
}
],
"latest": {
"href": "s3://rea-
reporting/revenue/customer/ancestry/20150312_052251_2015-03.json"
}
}
}
Index
Ancestry
● JSON
● Metadata about job (time, duration, name,
status)
● Links to data files
● Links to logs
● Links to (or copy of) source data
● Includes ancestry of source data
{
"id": "20150312_050856",
"status": "success",
"name": "customer-collector",
"month": "2015-02",
"startTime": "2015-03-12T16:08:56+11:00",
"duration": 16,
"_links": {
"self": {
"href": "s3://rea-reporting/revenue/customer/ancestry/20150312_050856_2015-02.json"
},
"git": {
"href": "https://git.realestate.com.au/mad-dart/customer-collector/commit/git-hash-not-set"
},
"splunk": {
"href": "https://splunk:8000/en-US/app/search/flashtimeline?q=search%20index=mad-reporting%
20service=customer-collector%2092c056cc5996d8dad547d077cebb5c25"
},
"data": [
{
"href": "s3://rea-reporting/revenue/customer/data/20150312_050856/Customer-25-2-2015.csv.json.gz"
}
]
},
"ancestry": {
"name": "customer",
"uploader": "beth.skurrie@rea-group.com",
"_links": {
"data": {
"href": "s3://rea-reporting/revenue/customer/source/20150312_050856/Customer-25-2-2015.csv.gz"
},
"box": {
"href": "reference/customer/Customer-25-2-2015.csv"
}
}
}
}
File structure
index.json
ancestry/timestamp_1_2015-02.json
data/timestamp_1/Customers-2015-02.csv.json.gz
source/timestamp_1/Customers-2015-02.csv.gz
ancestry-latest-by-month/2015-02.json
File structure
index.json
ancestry/timestamp_1_2015-02.json
ancestry/timestamp_2_2015-02.json
data/timestamp_1/Customers-2015-02.csv.json.gz
data/timestamp_2/Customers-2015-02.csv.json.gz
source/timestamp_1/Customers-2015-02.csv.gz
source/timestamp_2/Customers-2015-02.csv.gz
ancestry-latest-by-month/2015-02.json
Why is it cool?
● Security
● Flexibility
● Auditability
You didn’t think I could do a
presentation without mentioning
Pact did you?
Contracts with non-HTTP Pact
Contract
(example data
structures)
Consumer
Correctly handles
expected data
Provider
Can produce
expected data
Questions?
@bethesque
bskurrie@dius.com.au
github.com/bethesque

More Related Content

Viewers also liked

Memoria descriptiva de vivienda multifamiliar
Memoria descriptiva de vivienda multifamiliarMemoria descriptiva de vivienda multifamiliar
Memoria descriptiva de vivienda multifamiliarYuri Pio Rivera
 
MEMORIA DESCRIPTIVA INSTALACIONES ELECTRICAS
MEMORIA DESCRIPTIVA INSTALACIONES ELECTRICASMEMORIA DESCRIPTIVA INSTALACIONES ELECTRICAS
MEMORIA DESCRIPTIVA INSTALACIONES ELECTRICASCARLOS mendez
 
PRESENTACION PROYECTO FINAL VIVIENDA MULTIFAMILIAR
PRESENTACION PROYECTO FINAL VIVIENDA MULTIFAMILIARPRESENTACION PROYECTO FINAL VIVIENDA MULTIFAMILIAR
PRESENTACION PROYECTO FINAL VIVIENDA MULTIFAMILIARcaritom25
 
Memoria descriptiva INDECI - EDIFICIO MULTIFAMILIAR 6 PISOS
Memoria descriptiva INDECI - EDIFICIO MULTIFAMILIAR 6 PISOS Memoria descriptiva INDECI - EDIFICIO MULTIFAMILIAR 6 PISOS
Memoria descriptiva INDECI - EDIFICIO MULTIFAMILIAR 6 PISOS esteban garcilazo
 
MEMORIA DESCIRPTIVA. VIVIENDA UNIFAMILIAR
MEMORIA DESCIRPTIVA. VIVIENDA UNIFAMILIARMEMORIA DESCIRPTIVA. VIVIENDA UNIFAMILIAR
MEMORIA DESCIRPTIVA. VIVIENDA UNIFAMILIARingenieria2014
 
Ejemplo memoria de calculo estructural
Ejemplo memoria de calculo estructuralEjemplo memoria de calculo estructural
Ejemplo memoria de calculo estructuralRichard Amaya Donoso
 

Viewers also liked (11)

77234018 vivienda-multifamiliar
77234018 vivienda-multifamiliar77234018 vivienda-multifamiliar
77234018 vivienda-multifamiliar
 
Memoria descriptiva de vivienda multifamiliar
Memoria descriptiva de vivienda multifamiliarMemoria descriptiva de vivienda multifamiliar
Memoria descriptiva de vivienda multifamiliar
 
Tipos De Vivienda
Tipos De ViviendaTipos De Vivienda
Tipos De Vivienda
 
Edificio multifamiliar sustentable
Edificio multifamiliar sustentableEdificio multifamiliar sustentable
Edificio multifamiliar sustentable
 
Memoria descrptiva
Memoria descrptivaMemoria descrptiva
Memoria descrptiva
 
MEMORIA DESCRIPTIVA INSTALACIONES ELECTRICAS
MEMORIA DESCRIPTIVA INSTALACIONES ELECTRICASMEMORIA DESCRIPTIVA INSTALACIONES ELECTRICAS
MEMORIA DESCRIPTIVA INSTALACIONES ELECTRICAS
 
PRESENTACION PROYECTO FINAL VIVIENDA MULTIFAMILIAR
PRESENTACION PROYECTO FINAL VIVIENDA MULTIFAMILIARPRESENTACION PROYECTO FINAL VIVIENDA MULTIFAMILIAR
PRESENTACION PROYECTO FINAL VIVIENDA MULTIFAMILIAR
 
Memoria descriptiva INDECI - EDIFICIO MULTIFAMILIAR 6 PISOS
Memoria descriptiva INDECI - EDIFICIO MULTIFAMILIAR 6 PISOS Memoria descriptiva INDECI - EDIFICIO MULTIFAMILIAR 6 PISOS
Memoria descriptiva INDECI - EDIFICIO MULTIFAMILIAR 6 PISOS
 
Memoria descriptiva de estructuras
Memoria descriptiva de estructurasMemoria descriptiva de estructuras
Memoria descriptiva de estructuras
 
MEMORIA DESCIRPTIVA. VIVIENDA UNIFAMILIAR
MEMORIA DESCIRPTIVA. VIVIENDA UNIFAMILIARMEMORIA DESCIRPTIVA. VIVIENDA UNIFAMILIAR
MEMORIA DESCIRPTIVA. VIVIENDA UNIFAMILIAR
 
Ejemplo memoria de calculo estructural
Ejemplo memoria de calculo estructuralEjemplo memoria de calculo estructural
Ejemplo memoria de calculo estructural
 

Recently uploaded

Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 

Recently uploaded (20)

Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 

Hipster batch - making batch processing cool again