Family Tree's Journey Toward An Edge Dominant System Architecture RANDY YNCHAUSTI SOFTWARE ARCHITECT – FAMILY TREE APPLICATION FAMILYSEARCH.ORG
Jun 19, 2015
Family Tree's Journey Toward An Edge Dominant System ArchitectureRANDY YNCHAUSTI
SOFTWARE ARCHITECT – FAMILY TREE APPLICATION
FAMILYSEARCH.ORG
Outline1. Preface
2. Software Architecture
3. Edge Dominant Systems
4. Metropolis Structure of Edge Dominant Systems
5. Key Family Tree Questions
6. Summary
Preface
Journey“Human nature is not a machine to be built after a model, and set to do exactly the work prescribed for it, but a tree, which requires to grow and develop itself on all sides, according to the tendency of the inward forces which make it a living thing.”
John Stuart Mill (1806-1873). On Liberty, 3, 1859
Software Architecture
Definition
Software Architecture is “the set of structures needed to reason about the system, which comprise software elements, relations among them, and properties of both.”
Software Architecture In Practice, Third Edition, 2013, Pearson Education, Inc., Len Bass, Paul Clements, Rick Kazman
Edge Dominant Systems
Commons-Based Peer Production“COMMONS-BASED peer production is a socio-economic system of
production that is emerging in the digitally networked environment.
Facilitated by the technical infrastructure of the Internet, the hallmark of this
socio-technical system is collaboration among large groups of individuals,
sometimes in the order of tens or even hundreds of thousands, who cooperate
effectively to provide information, knowledge or cultural goods without relying
on either market pricing or managerial hierarchies to coordinate their common
enterprise.”
Commons-based Peer production and Virtue, The Journal of Political Philosophy: Volume 14, Number 4, 2006, pp. 394-419, Yochai Benkley (Yale Law School) and Helen Nissenbaum (New York University)
Commons-Based Peer Production“COMMONS-BASED peer production is a socio-economic system of
production that is emerging in the digitally networked environment.
Facilitated by the technical infrastructure of the Internet, the hallmark of this
socio-technical system is collaboration among large groups of individuals,
sometimes in the order of tens or even hundreds of thousands, who cooperate
effectively to provide information, knowledge or cultural goods without relying
on either market pricing or managerial hierarchies to coordinate their common
enterprise.”
Commons-based Peer production and Virtue, The Journal of Political Philosophy: Volume 14, Number 4, 2006, pp. 394-419, Yochai Benkley (Yale Law School) and Helen Nissenbaum (New York University)
Commons-Based Peer Production“COMMONS-BASED peer production is a socio-economic system of
production that is emerging in the digitally networked environment.
Facilitated by the technical infrastructure of the Internet, the hallmark of this
socio-technical system is collaboration among large groups of individuals,
sometimes in the order of tens or even hundreds of thousands, who cooperate
effectively to provide information, knowledge or cultural goods without relying
on either market pricing or managerial hierarchies to coordinate their common
enterprise.”
Commons-based Peer production and Virtue, The Journal of Political Philosophy: Volume 14, Number 4, 2006, pp. 394-419, Yochai Benkley (Yale Law School) and Helen Nissenbaum (New York University)
Commons-Based Peer Production“COMMONS-BASED peer production is a socio-economic system of
production that is emerging in the digitally networked environment.
Facilitated by the technical infrastructure of the Internet, the hallmark of this
socio-technical system is collaboration among large groups of individuals,
sometimes in the order of tens or even hundreds of thousands, who cooperate
effectively to provide information, knowledge or cultural goods without relying
on either market pricing or managerial hierarchies to coordinate their common
enterprise.”
Commons-based Peer production and Virtue, The Journal of Political Philosophy: Volume 14, Number 4, 2006, pp. 394-419, Yochai Benkley (Yale Law School) and Helen Nissenbaum (New York University)
Edge Dominant System
A web-based system that depends almost exclusively on user input for its success.
Edge Dominant SystemWhat would _________ be without user contributions/value?
◦ Wikipedia (3 billion English pages are viewed per day)
◦ YouTube (2.8 billion videos per day)
◦ Facebook (serves 10 billion pieces of content per day)
◦ Twitter (190 million tweets per day)
◦ LinkedIn (11 million searches per day)
◦ …
Metropolis Structure of Edge Dominant Systems
Metropolis Structureof an Edge-Dominant System
The Changing Field of Software Architecture, By Rick Kazman, Len Bass, Paul Clements, December 12, 2012, http://www.informit.com/articles/article.aspx?p=1994790
Masses: Consumers
Edge: Prosumers
Core: Developers
Metropolis StructureCore
Masses: Consumers
Edge: Prosumers
Core: Developers
Designed by a small, coherent team that:◦ Defines the system’s basic structure
◦ Quality attributes, tradeoffs and constraints
Code is typically: ◦ Highly reliable
◦ Modular and layered
◦ Slow to change
◦ Robust – unforeseeable interactions
Implemented as a set, possibly hundreds, of services with APIs upon which the periphery can build
Affinity for cloud-based architectures providing elastic set of resources
Metropolis StructurePeriphery
Edge functions or services that are built on the core
Deliver the majority of the function and end-user value
Changes relatively rapidly
Some services are going to be redundant and others are going to be unavailable.
Error detection is complicated
Constant testing of the services is necessary.
Peer services are potential Denial of Service attackers
Masses: Consumers
Edge: Prosumers
Core: Developers
Implications
Requirements are asserted by the periphery
Core is the fabric of the system, it must be designed and managed by a small group
◦ Quality Attributes◦ Performance, Modularity, Modifiability, Availability
◦ Services◦ Slow to change
◦ Flawless error detection and handling
Core provides value via data and service◦ It must ensure that prosumer contributions follow the
engagement and enforcement model
Periphery is self-managed◦ Governance by the core governing body
Value deliver is distributed and often asynchronous◦ Tolerant of co-existing versions
of an Edge-Dominant System
Key Family Tree Questions
Family TreeKey questions regarding our edge dominant architecture:
1. What architecture improvements does the Family Tree core need?
2. What additional capability (data and/or service) does the Family Tree core need to provide to the periphery?
Family TreeKey questions regarding our edge dominant architecture:
1. What architecture improvements does the Family Tree core need?a. Modularity
b. Scalability
c. Performance
2. What additional capability (data and/or service) does the Family Tree core need to provide to the periphery?
Family Tree CoreSimplified, Current View of the Core
Monolith
Service Layer
Common Pedigree
Persistence
TempleReservation
TempleSubsystem
Support
Public API
DataImport
<Common Pedigree>DMC Support
Data ManagementConsole
DataMart
<Common Pedigree>DataMart Support
Watch-Notify
Co
mm
on
P
ed
igre
e,
Te
mp
le
Re
serv
ati
on
,T
em
ple
Su
bsy
ste
m,
Co
ncl
usi
on
T
ree
Da
taM
art
TempleSubsystem
Te
mp
le
Sub
syst
em
DiscussionsOngoing Updates
<Worker>Batch Processing
Throttling
Ch
urc
h
Me
mb
ers
hip
Church Membership
TempleReservation
Publish-Subscribe
Tree Data
Pu
blis
h-
Sub
scri
be
Platform API
Throttling
Sources
Family Tree UserConclusion Tree
Authentication
Authorization
Au
the
nti
cati
on
a
nd
A
uth
ori
zati
on
User Session
Search
Sea
rch
Ma
tch
Match
Family Tree CoreManage Ancestor Pedigree Data
Monolith
Service Layer
Common Pedigree
Persistence
TempleReservation
TempleSubsystem
Support
Public API
DataImport
<Common Pedigree>DMC Support
Data ManagementConsole
DataMart
<Common Pedigree>DataMart Support
Watch-Notify
Co
mm
on
P
ed
igre
e,
Te
mp
le
Re
serv
atio
n,
Te
mp
le
Sub
syst
em
, C
on
clu
sio
n
Tre
e
Da
taM
art
TempleSubsystem
Te
mp
le
Sub
syst
em
DiscussionsOngoing Updates
<Worker>Batch Processing
Throttling
Ch
urc
h
Me
mb
ers
hip
Church Membership
TempleReservation
Publish-Subscribe
Tree Data
Pu
blis
h-
Sub
scri
be
Platform API
Throttling
Sources
Family Tree UserConclusion Tree
Authentication
Authorization
Au
the
nti
cati
on
a
nd
A
uth
ori
zati
on
User Session
Search
Sea
rch
Ma
tch
Match
Family Tree CoreSimplified, Future View of the Core
Monolith
Service Layer
Common Pedigree
Persistence
Com
mon
P
edig
ree,
Tem
ple
R
eser
vati
on
,Te
mp
le
Subs
yste
m,
Con
clu
sio
n Tr
ee
Tree Data
Conclusion Tree
Platform API
Throttling
Tree Foundation
Persistence
Tree Data
Cloud
Family Tree User
Fam
ily
Tree
Use
r
Family TreeKey questions regarding our edge dominant architecture:
1. What architecture improvements does the Family Tree core need?a. Modularity
b. Scalability
c. Performance
2. What additional capability (data and/or service) does the Family Tree core need to provide to the periphery?
Family TreeKey questions regarding our edge dominant architecture:
1. What architecture improvements does the Family Tree core need?a. Modularityb. Scalabilityc. Performance
2. What capability (data and/or service) needs are emerging from the periphery?
a. Genealogical Research, Campaign Workflow, Business Researcha. Graph (node-edge) data relations
Summary
SummaryFamily Tree architecture and software development life cycle represents a journey.
There is a class of software that benefits from employing edge dominant architecture, which closely relates to Benkley et. al. concept of commons-based peer produced systems.
Edge dominant systems can be described as using the Metropolis structure that identifies a core that developers produce and periphery that prosumers develop and use, and consumers use.
The Family Tree’s objectives can be achieved with an edge dominant architecture, and are consistent with gold-standard industry edge dominant systems.
SummaryThe Family Tree’s architecture must deal with all of the implications, forces and constraints of a typical edge dominant systems.
Currently, the Family Tree’s core is slowly changing to meet architecturally significant requirements and quality attributes, particularly along the lines of system modularity, scalability and performance.
Emerging needs and requirements for the Family Tree’s core is to better support genealogical and business research, and campaign workflow that generally need graph (edge-node) data and services.