SlideShare ist ein Scribd-Unternehmen logo
1 von 12
Downloaden Sie, um offline zu lesen
Our objective seemed simple at first: to
create a unified and up-to-date view
of incoming data for all users, without
misplacing a single bit.
!
It started small, just a few vendors to
connect. Maybe 5 important feeds.
!
5 became 10, then grew to 50.
There were data streams
In the beginning
Formats became more varied, as did the
properties of the feeds themselves.
!
Achieving the goal was going to require
thought, but first, let’s look at the data.
2
ASCII blobs - schemas define character
ranges and data types.
!
Example: Transaction log from a Cobol
DB. 254 tables in single feed.
!
Aggressive parsing required! Often, data
types and NULL constraints are the only
obvious clues indicating data integrity.
ASCII byte ranges
Fixed-Width
3
00226345user.ix1 00000074
2013102112110400CHANGED
00000074IT8208IV*Z IT8208
IT8208 INFO| 100000.00
100000.00 100000.00
A20050101INITLD20120720IT8208
215 91515 91414 11114 7 0 9
814 7 1 0111414 0 010 7 0
51514 01415 41515 01415 0 714
0 01015 11114 51514 41515
0151414 0 1 3 1 3 1 3 1 3 1 3
1 3 1 3 1 3 1 3 1
3SASSSASSSASSNORM
0225DEMO
AHAUSSLER@SS-HEALTHCARE.COM
18991231
NORMNORM
A00819870000271400000002C00025
89
C00272560000050000000087
Since 1989 (v2), XML as of 2005 (v3)
!
Targets clinical and admin data
interchange among hospitals
!
Core reference model has been
called an incoherent standard
(Smith & Ceusters, 2006)
Health Level Seven
HL7
4
<POLB_IN224200 ITSVersion="XML_1.0"
xmlns="urn:hl7-org:v3"
xmlns:xsi="http://www.w3.org/2001/
XMLSchema-instance">
<id root="2.16.840.1.113883.19.1122.7"
extension="CNTRL-3456"/>
<creationTime value="200202150930-0400"/>
<versionCode code="2006-05"/>
<interactionId
root="2.16.840.1.113883.1.6"
extension="POLB_IN224200"/>
<processingCode code="P"/>
<processingModeCode nullFlavor="OTH"/>
<acceptAckCode code="ER"/>
<receiver typeCode="RCV">
<device classCode="DEV"
determinerCode="INSTANCE">
<id extension="GHH LAB"
root="2.16.840.1.113883.19.1122.1"/>
<asLocatedEntity classCode="LOCE">
…
</POLB_IN224200>
Since 1971
!
Elements, segments, loops, and hierarchy - like
XML, schema is up to the designers. Unlike XML,
structure must be derived at parse time.
!
Context-sensitive grammars! Need a parse stack
to understand all EDI document types.
Electronic Data Interchange
EDI
5
ISA*00* *00*
*12*ABCCOM
*01*99999999*101127*1719*U*004
00*000003438*0*P*~GS*PO*440519
7800*999999999*20101127*1719*1
421*X*004010VICS~ST*834*0179~B
GN*00*1*20050315*110650****~RE
F*38*SAMPLE_POLICY_NUMBER~DTP*
303*D8*20080321~N1*P5*COMPAN_N
AME*FI*000000000~INS*Y*18*030*
20*A
REF*0F*SUBSCRIBER_NUMBER~NM1*I
L*1*JOHNDOE*R***34*1*0000000~P
ER*IP**HP*2138051111~N3*123
SAMPLE
RD~N4*CITY*ST*12345~DMG*D8*196
90101*F~HD*030~DTP*348*D8*2008
0101~REF*1L*INDIV_POLICY_NO~SE
*16*0179~GE*1*1421~IEA*1*00000
3438
Get a feed, write a parser, model it, store it, try to
do it right, then deploy it. 50 times! In 50 ways?
Sure, as long as we stay organized
Easy, right?
6
Every feed has its own characteristics.
!
Every project seems to want its own solution.
!
It’s so easy at first just to implement things.
Then comes The Mess.
Insurance is hard. Let’s simplify it.
Complexity is the Enemy!
Can we identify common properties
needed by our systems, and guarantee
that those properties are satisfied in
reaching a fundamental goal?
7
Control latency. Integrate data as
quickly as possible.
!
And last but far from least:
!
Maintain privacy. Our jobs are often
handling user data, and they must
handle private data with great care.
To keep our data correct, we need
to ensure some fundamental
system properties
8
Respect order. You process things out
of order, you corrupt your data.
!
Break on failure. Never write bad data
or continue in an abnormal state.
!
Be idempotent. Mid-process or mid-
transaction errors are to be expected.
Judgment is required here, in
abundance. These goals are more
nebulous but of critical importance to a
growing engineering team.
Let’s not forget some
important higher-order
properties
9
Implement consistently. Avoid The
Mess. Consolidate best practices.
!
Deploy consistently. Every new deploy
style carries a constant increase in
operational complexity.
Parse and model each feed as a custom
step, but let the framework handle
common properties.
!
oscaretl: a framework for
transactional safety
10
Data streams in which data is not
independent (often the case), will
benefit from being handled as
transaction logs.
!
Monotonically increasing transaction IDs
are very useful. Try to derive them if they
don’t exist naturally in the data.
Parsers and schemas are custom, but
data formatting, safe writes, and safe
execution can be factored out.
!
Common schema types can be re-used.
!
Factoring out the
common elements
11
Good start, but we need more: at this
point, a good runtime model and a job
scheduler.
What have we achieved?
12
Strict ordering. Processing will halt on missing data.
!
Idempotence. Careful state binding allows us to
resume where we left off.
!
Break on failure. Processing will halt on error.

Weitere ähnliche Inhalte

Ähnlich wie Oscar Engineering part 1

GWAVACon - Files Matters (English)
GWAVACon - Files Matters (English)GWAVACon - Files Matters (English)
GWAVACon - Files Matters (English)GWAVA
 
CQRS recipes or how to cook your architecture
CQRS recipes or how to cook your architectureCQRS recipes or how to cook your architecture
CQRS recipes or how to cook your architectureThomas Jaskula
 
10 Big Ideas from Industry
10 Big Ideas from Industry10 Big Ideas from Industry
10 Big Ideas from IndustryGarth Gilmour
 
Slides from the NASIG 2018 Preconference
Slides from the NASIG 2018 PreconferenceSlides from the NASIG 2018 Preconference
Slides from the NASIG 2018 PreconferenceTerry Reese
 
Performance Optimization of Cloud Based Applications by Peter Smith, ACL
Performance Optimization of Cloud Based Applications by Peter Smith, ACLPerformance Optimization of Cloud Based Applications by Peter Smith, ACL
Performance Optimization of Cloud Based Applications by Peter Smith, ACLTriNimbus
 
DBA Tips and Tricks - Presentation
DBA Tips and Tricks - PresentationDBA Tips and Tricks - Presentation
DBA Tips and Tricks - PresentationFrancisco Alvarez
 
Data massage! databases scaled from one to one million nodes (ulf wendel)
Data massage! databases scaled from one to one million nodes (ulf wendel)Data massage! databases scaled from one to one million nodes (ulf wendel)
Data massage! databases scaled from one to one million nodes (ulf wendel)Zhang Bo
 
SQL Pass Architecture SQL Tips & Tricks
SQL Pass Architecture SQL Tips & TricksSQL Pass Architecture SQL Tips & Tricks
SQL Pass Architecture SQL Tips & TricksIke Ellis
 
Python for Data Logistics
Python for Data LogisticsPython for Data Logistics
Python for Data LogisticsKen Farmer
 
7 Database Mistakes YOU Are Making -- Linuxfest Northwest 2019
7 Database Mistakes YOU Are Making -- Linuxfest Northwest 20197 Database Mistakes YOU Are Making -- Linuxfest Northwest 2019
7 Database Mistakes YOU Are Making -- Linuxfest Northwest 2019Dave Stokes
 
Myths & Reality - Choose a DBMS tailored to your use cases
Myths & Reality - Choose a DBMS tailored to your use casesMyths & Reality - Choose a DBMS tailored to your use cases
Myths & Reality - Choose a DBMS tailored to your use casesOVHcloud
 
ITARC15 Workshop - Architecting a Large Software Project - Lessons Learned
ITARC15 Workshop - Architecting a Large Software Project - Lessons LearnedITARC15 Workshop - Architecting a Large Software Project - Lessons Learned
ITARC15 Workshop - Architecting a Large Software Project - Lessons LearnedJoão Pedro Martins
 
Protecting privacy with fuzzy-feeling test data
Protecting privacy with fuzzy-feeling test dataProtecting privacy with fuzzy-feeling test data
Protecting privacy with fuzzy-feeling test dataMatt Bowen
 
Advanced Database Management Syatem
Advanced Database Management SyatemAdvanced Database Management Syatem
Advanced Database Management Syatemchirag patil
 
Structured Software Design
Structured Software DesignStructured Software Design
Structured Software DesignGiorgio Zoppi
 
Ch-11 Relational Databases.pptx
Ch-11 Relational Databases.pptxCh-11 Relational Databases.pptx
Ch-11 Relational Databases.pptxShadowDawg
 
03 Ace 2010 Basic Research Plm For Recipe Management And Supply Chain
03 Ace 2010 Basic Research Plm For Recipe Management And Supply Chain03 Ace 2010 Basic Research Plm For Recipe Management And Supply Chain
03 Ace 2010 Basic Research Plm For Recipe Management And Supply ChainProdeos
 
Relational data modeling trends for transactional applications
Relational data modeling trends for transactional applicationsRelational data modeling trends for transactional applications
Relational data modeling trends for transactional applicationsIke Ellis
 
Troubleshooting: The Two Laws - IXIASOFT User Conference 2016
Troubleshooting: The Two Laws - IXIASOFT User Conference 2016Troubleshooting: The Two Laws - IXIASOFT User Conference 2016
Troubleshooting: The Two Laws - IXIASOFT User Conference 2016IXIASOFT
 

Ähnlich wie Oscar Engineering part 1 (20)

GWAVACon - Files Matters (English)
GWAVACon - Files Matters (English)GWAVACon - Files Matters (English)
GWAVACon - Files Matters (English)
 
CQRS recipes or how to cook your architecture
CQRS recipes or how to cook your architectureCQRS recipes or how to cook your architecture
CQRS recipes or how to cook your architecture
 
10 Big Ideas from Industry
10 Big Ideas from Industry10 Big Ideas from Industry
10 Big Ideas from Industry
 
Final project cafe coffe
Final project cafe coffeFinal project cafe coffe
Final project cafe coffe
 
Slides from the NASIG 2018 Preconference
Slides from the NASIG 2018 PreconferenceSlides from the NASIG 2018 Preconference
Slides from the NASIG 2018 Preconference
 
Performance Optimization of Cloud Based Applications by Peter Smith, ACL
Performance Optimization of Cloud Based Applications by Peter Smith, ACLPerformance Optimization of Cloud Based Applications by Peter Smith, ACL
Performance Optimization of Cloud Based Applications by Peter Smith, ACL
 
DBA Tips and Tricks - Presentation
DBA Tips and Tricks - PresentationDBA Tips and Tricks - Presentation
DBA Tips and Tricks - Presentation
 
Data massage! databases scaled from one to one million nodes (ulf wendel)
Data massage! databases scaled from one to one million nodes (ulf wendel)Data massage! databases scaled from one to one million nodes (ulf wendel)
Data massage! databases scaled from one to one million nodes (ulf wendel)
 
SQL Pass Architecture SQL Tips & Tricks
SQL Pass Architecture SQL Tips & TricksSQL Pass Architecture SQL Tips & Tricks
SQL Pass Architecture SQL Tips & Tricks
 
Python for Data Logistics
Python for Data LogisticsPython for Data Logistics
Python for Data Logistics
 
7 Database Mistakes YOU Are Making -- Linuxfest Northwest 2019
7 Database Mistakes YOU Are Making -- Linuxfest Northwest 20197 Database Mistakes YOU Are Making -- Linuxfest Northwest 2019
7 Database Mistakes YOU Are Making -- Linuxfest Northwest 2019
 
Myths & Reality - Choose a DBMS tailored to your use cases
Myths & Reality - Choose a DBMS tailored to your use casesMyths & Reality - Choose a DBMS tailored to your use cases
Myths & Reality - Choose a DBMS tailored to your use cases
 
ITARC15 Workshop - Architecting a Large Software Project - Lessons Learned
ITARC15 Workshop - Architecting a Large Software Project - Lessons LearnedITARC15 Workshop - Architecting a Large Software Project - Lessons Learned
ITARC15 Workshop - Architecting a Large Software Project - Lessons Learned
 
Protecting privacy with fuzzy-feeling test data
Protecting privacy with fuzzy-feeling test dataProtecting privacy with fuzzy-feeling test data
Protecting privacy with fuzzy-feeling test data
 
Advanced Database Management Syatem
Advanced Database Management SyatemAdvanced Database Management Syatem
Advanced Database Management Syatem
 
Structured Software Design
Structured Software DesignStructured Software Design
Structured Software Design
 
Ch-11 Relational Databases.pptx
Ch-11 Relational Databases.pptxCh-11 Relational Databases.pptx
Ch-11 Relational Databases.pptx
 
03 Ace 2010 Basic Research Plm For Recipe Management And Supply Chain
03 Ace 2010 Basic Research Plm For Recipe Management And Supply Chain03 Ace 2010 Basic Research Plm For Recipe Management And Supply Chain
03 Ace 2010 Basic Research Plm For Recipe Management And Supply Chain
 
Relational data modeling trends for transactional applications
Relational data modeling trends for transactional applicationsRelational data modeling trends for transactional applications
Relational data modeling trends for transactional applications
 
Troubleshooting: The Two Laws - IXIASOFT User Conference 2016
Troubleshooting: The Two Laws - IXIASOFT User Conference 2016Troubleshooting: The Two Laws - IXIASOFT User Conference 2016
Troubleshooting: The Two Laws - IXIASOFT User Conference 2016
 

Kürzlich hochgeladen

Call Girls In Bellandur ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bellandur ☎ 7737669865 🥵 Book Your One night StandCall Girls In Bellandur ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bellandur ☎ 7737669865 🥵 Book Your One night Standamitlee9823
 
Edukaciniai dropshipping via API with DroFx
Edukaciniai dropshipping via API with DroFxEdukaciniai dropshipping via API with DroFx
Edukaciniai dropshipping via API with DroFxolyaivanovalion
 
ALSO dropshipping via API with DroFx.pptx
ALSO dropshipping via API with DroFx.pptxALSO dropshipping via API with DroFx.pptx
ALSO dropshipping via API with DroFx.pptxolyaivanovalion
 
Generative AI on Enterprise Cloud with NiFi and Milvus
Generative AI on Enterprise Cloud with NiFi and MilvusGenerative AI on Enterprise Cloud with NiFi and Milvus
Generative AI on Enterprise Cloud with NiFi and MilvusTimothy Spann
 
CebaBaby dropshipping via API with DroFX.pptx
CebaBaby dropshipping via API with DroFX.pptxCebaBaby dropshipping via API with DroFX.pptx
CebaBaby dropshipping via API with DroFX.pptxolyaivanovalion
 
BDSM⚡Call Girls in Mandawali Delhi >༒8448380779 Escort Service
BDSM⚡Call Girls in Mandawali Delhi >༒8448380779 Escort ServiceBDSM⚡Call Girls in Mandawali Delhi >༒8448380779 Escort Service
BDSM⚡Call Girls in Mandawali Delhi >༒8448380779 Escort ServiceDelhi Call girls
 
Vip Mumbai Call Girls Marol Naka Call On 9920725232 With Body to body massage...
Vip Mumbai Call Girls Marol Naka Call On 9920725232 With Body to body massage...Vip Mumbai Call Girls Marol Naka Call On 9920725232 With Body to body massage...
Vip Mumbai Call Girls Marol Naka Call On 9920725232 With Body to body massage...amitlee9823
 
Call Girls Begur Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangalore
Call Girls Begur Just Call 👗 7737669865 👗 Top Class Call Girl Service BangaloreCall Girls Begur Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangalore
Call Girls Begur Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangaloreamitlee9823
 
Smarteg dropshipping via API with DroFx.pptx
Smarteg dropshipping via API with DroFx.pptxSmarteg dropshipping via API with DroFx.pptx
Smarteg dropshipping via API with DroFx.pptxolyaivanovalion
 
Call Girls Bommasandra Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
Call Girls Bommasandra Just Call 👗 7737669865 👗 Top Class Call Girl Service B...Call Girls Bommasandra Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
Call Girls Bommasandra Just Call 👗 7737669865 👗 Top Class Call Girl Service B...amitlee9823
 
VidaXL dropshipping via API with DroFx.pptx
VidaXL dropshipping via API with DroFx.pptxVidaXL dropshipping via API with DroFx.pptx
VidaXL dropshipping via API with DroFx.pptxolyaivanovalion
 
Halmar dropshipping via API with DroFx
Halmar  dropshipping  via API with DroFxHalmar  dropshipping  via API with DroFx
Halmar dropshipping via API with DroFxolyaivanovalion
 
Cheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 night
Cheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 nightCheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 night
Cheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 nightDelhi Call girls
 
Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...
Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...
Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...Delhi Call girls
 
Mg Road Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Banga...
Mg Road Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Banga...Mg Road Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Banga...
Mg Road Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Banga...amitlee9823
 
Al Barsha Escorts $#$ O565212860 $#$ Escort Service In Al Barsha
Al Barsha Escorts $#$ O565212860 $#$ Escort Service In Al BarshaAl Barsha Escorts $#$ O565212860 $#$ Escort Service In Al Barsha
Al Barsha Escorts $#$ O565212860 $#$ Escort Service In Al BarshaAroojKhan71
 
Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...
Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...
Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...amitlee9823
 

Kürzlich hochgeladen (20)

Call Girls In Bellandur ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bellandur ☎ 7737669865 🥵 Book Your One night StandCall Girls In Bellandur ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bellandur ☎ 7737669865 🥵 Book Your One night Stand
 
Edukaciniai dropshipping via API with DroFx
Edukaciniai dropshipping via API with DroFxEdukaciniai dropshipping via API with DroFx
Edukaciniai dropshipping via API with DroFx
 
ALSO dropshipping via API with DroFx.pptx
ALSO dropshipping via API with DroFx.pptxALSO dropshipping via API with DroFx.pptx
ALSO dropshipping via API with DroFx.pptx
 
Generative AI on Enterprise Cloud with NiFi and Milvus
Generative AI on Enterprise Cloud with NiFi and MilvusGenerative AI on Enterprise Cloud with NiFi and Milvus
Generative AI on Enterprise Cloud with NiFi and Milvus
 
CebaBaby dropshipping via API with DroFX.pptx
CebaBaby dropshipping via API with DroFX.pptxCebaBaby dropshipping via API with DroFX.pptx
CebaBaby dropshipping via API with DroFX.pptx
 
BDSM⚡Call Girls in Mandawali Delhi >༒8448380779 Escort Service
BDSM⚡Call Girls in Mandawali Delhi >༒8448380779 Escort ServiceBDSM⚡Call Girls in Mandawali Delhi >༒8448380779 Escort Service
BDSM⚡Call Girls in Mandawali Delhi >༒8448380779 Escort Service
 
Vip Mumbai Call Girls Marol Naka Call On 9920725232 With Body to body massage...
Vip Mumbai Call Girls Marol Naka Call On 9920725232 With Body to body massage...Vip Mumbai Call Girls Marol Naka Call On 9920725232 With Body to body massage...
Vip Mumbai Call Girls Marol Naka Call On 9920725232 With Body to body massage...
 
Call Girls Begur Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangalore
Call Girls Begur Just Call 👗 7737669865 👗 Top Class Call Girl Service BangaloreCall Girls Begur Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangalore
Call Girls Begur Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangalore
 
Smarteg dropshipping via API with DroFx.pptx
Smarteg dropshipping via API with DroFx.pptxSmarteg dropshipping via API with DroFx.pptx
Smarteg dropshipping via API with DroFx.pptx
 
Sampling (random) method and Non random.ppt
Sampling (random) method and Non random.pptSampling (random) method and Non random.ppt
Sampling (random) method and Non random.ppt
 
Call Girls Bommasandra Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
Call Girls Bommasandra Just Call 👗 7737669865 👗 Top Class Call Girl Service B...Call Girls Bommasandra Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
Call Girls Bommasandra Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
 
Call Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts Service
Call Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts ServiceCall Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts Service
Call Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts Service
 
VidaXL dropshipping via API with DroFx.pptx
VidaXL dropshipping via API with DroFx.pptxVidaXL dropshipping via API with DroFx.pptx
VidaXL dropshipping via API with DroFx.pptx
 
Halmar dropshipping via API with DroFx
Halmar  dropshipping  via API with DroFxHalmar  dropshipping  via API with DroFx
Halmar dropshipping via API with DroFx
 
Cheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 night
Cheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 nightCheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 night
Cheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 night
 
Predicting Loan Approval: A Data Science Project
Predicting Loan Approval: A Data Science ProjectPredicting Loan Approval: A Data Science Project
Predicting Loan Approval: A Data Science Project
 
Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...
Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...
Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...
 
Mg Road Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Banga...
Mg Road Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Banga...Mg Road Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Banga...
Mg Road Call Girls Service: 🍓 7737669865 🍓 High Profile Model Escorts | Banga...
 
Al Barsha Escorts $#$ O565212860 $#$ Escort Service In Al Barsha
Al Barsha Escorts $#$ O565212860 $#$ Escort Service In Al BarshaAl Barsha Escorts $#$ O565212860 $#$ Escort Service In Al Barsha
Al Barsha Escorts $#$ O565212860 $#$ Escort Service In Al Barsha
 
Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...
Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...
Call Girls Hsr Layout Just Call 👗 7737669865 👗 Top Class Call Girl Service Ba...
 

Oscar Engineering part 1

  • 1.
  • 2. Our objective seemed simple at first: to create a unified and up-to-date view of incoming data for all users, without misplacing a single bit. ! It started small, just a few vendors to connect. Maybe 5 important feeds. ! 5 became 10, then grew to 50. There were data streams In the beginning Formats became more varied, as did the properties of the feeds themselves. ! Achieving the goal was going to require thought, but first, let’s look at the data. 2
  • 3. ASCII blobs - schemas define character ranges and data types. ! Example: Transaction log from a Cobol DB. 254 tables in single feed. ! Aggressive parsing required! Often, data types and NULL constraints are the only obvious clues indicating data integrity. ASCII byte ranges Fixed-Width 3 00226345user.ix1 00000074 2013102112110400CHANGED 00000074IT8208IV*Z IT8208 IT8208 INFO| 100000.00 100000.00 100000.00 A20050101INITLD20120720IT8208 215 91515 91414 11114 7 0 9 814 7 1 0111414 0 010 7 0 51514 01415 41515 01415 0 714 0 01015 11114 51514 41515 0151414 0 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3 1 3SASSSASSSASSNORM 0225DEMO AHAUSSLER@SS-HEALTHCARE.COM 18991231 NORMNORM A00819870000271400000002C00025 89 C00272560000050000000087
  • 4. Since 1989 (v2), XML as of 2005 (v3) ! Targets clinical and admin data interchange among hospitals ! Core reference model has been called an incoherent standard (Smith & Ceusters, 2006) Health Level Seven HL7 4 <POLB_IN224200 ITSVersion="XML_1.0" xmlns="urn:hl7-org:v3" xmlns:xsi="http://www.w3.org/2001/ XMLSchema-instance"> <id root="2.16.840.1.113883.19.1122.7" extension="CNTRL-3456"/> <creationTime value="200202150930-0400"/> <versionCode code="2006-05"/> <interactionId root="2.16.840.1.113883.1.6" extension="POLB_IN224200"/> <processingCode code="P"/> <processingModeCode nullFlavor="OTH"/> <acceptAckCode code="ER"/> <receiver typeCode="RCV"> <device classCode="DEV" determinerCode="INSTANCE"> <id extension="GHH LAB" root="2.16.840.1.113883.19.1122.1"/> <asLocatedEntity classCode="LOCE"> … </POLB_IN224200>
  • 5. Since 1971 ! Elements, segments, loops, and hierarchy - like XML, schema is up to the designers. Unlike XML, structure must be derived at parse time. ! Context-sensitive grammars! Need a parse stack to understand all EDI document types. Electronic Data Interchange EDI 5 ISA*00* *00* *12*ABCCOM *01*99999999*101127*1719*U*004 00*000003438*0*P*~GS*PO*440519 7800*999999999*20101127*1719*1 421*X*004010VICS~ST*834*0179~B GN*00*1*20050315*110650****~RE F*38*SAMPLE_POLICY_NUMBER~DTP* 303*D8*20080321~N1*P5*COMPAN_N AME*FI*000000000~INS*Y*18*030* 20*A REF*0F*SUBSCRIBER_NUMBER~NM1*I L*1*JOHNDOE*R***34*1*0000000~P ER*IP**HP*2138051111~N3*123 SAMPLE RD~N4*CITY*ST*12345~DMG*D8*196 90101*F~HD*030~DTP*348*D8*2008 0101~REF*1L*INDIV_POLICY_NO~SE *16*0179~GE*1*1421~IEA*1*00000 3438
  • 6. Get a feed, write a parser, model it, store it, try to do it right, then deploy it. 50 times! In 50 ways? Sure, as long as we stay organized Easy, right? 6
  • 7. Every feed has its own characteristics. ! Every project seems to want its own solution. ! It’s so easy at first just to implement things. Then comes The Mess. Insurance is hard. Let’s simplify it. Complexity is the Enemy! Can we identify common properties needed by our systems, and guarantee that those properties are satisfied in reaching a fundamental goal? 7
  • 8. Control latency. Integrate data as quickly as possible. ! And last but far from least: ! Maintain privacy. Our jobs are often handling user data, and they must handle private data with great care. To keep our data correct, we need to ensure some fundamental system properties 8 Respect order. You process things out of order, you corrupt your data. ! Break on failure. Never write bad data or continue in an abnormal state. ! Be idempotent. Mid-process or mid- transaction errors are to be expected.
  • 9. Judgment is required here, in abundance. These goals are more nebulous but of critical importance to a growing engineering team. Let’s not forget some important higher-order properties 9 Implement consistently. Avoid The Mess. Consolidate best practices. ! Deploy consistently. Every new deploy style carries a constant increase in operational complexity.
  • 10. Parse and model each feed as a custom step, but let the framework handle common properties. ! oscaretl: a framework for transactional safety 10 Data streams in which data is not independent (often the case), will benefit from being handled as transaction logs. ! Monotonically increasing transaction IDs are very useful. Try to derive them if they don’t exist naturally in the data.
  • 11. Parsers and schemas are custom, but data formatting, safe writes, and safe execution can be factored out. ! Common schema types can be re-used. ! Factoring out the common elements 11
  • 12. Good start, but we need more: at this point, a good runtime model and a job scheduler. What have we achieved? 12 Strict ordering. Processing will halt on missing data. ! Idempotence. Careful state binding allows us to resume where we left off. ! Break on failure. Processing will halt on error.