Top Banner
Family Tree's Journey Toward An Edge Dominant System Architecture RANDY YNCHAUSTI SOFTWARE ARCHITECT – FAMILY TREE APPLICATION FAMILYSEARCH.ORG
29

Family Tree's Journey Toward An Edge Dominant System

Jun 19, 2015

Download

Software

Randy Ynchausti

This presentation provides a glimpse into key system and software architecture of the Family Tree application of the FamilySearch.org web site.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Family Tree's Journey Toward An Edge Dominant System

Family Tree's Journey Toward An Edge Dominant System ArchitectureRANDY YNCHAUSTI

SOFTWARE ARCHITECT – FAMILY TREE APPLICATION

FAMILYSEARCH.ORG

Page 2: Family Tree's Journey Toward An Edge Dominant System

Outline1. Preface

2. Software Architecture

3. Edge Dominant Systems

4. Metropolis Structure of Edge Dominant Systems

5. Key Family Tree Questions

6. Summary

Page 3: Family Tree's Journey Toward An Edge Dominant System

Preface

Page 4: Family Tree's Journey Toward An Edge Dominant System

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

Page 5: Family Tree's Journey Toward An Edge Dominant System

Software Architecture

Page 6: Family Tree's Journey Toward An Edge Dominant System

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

Page 7: Family Tree's Journey Toward An Edge Dominant System

Edge Dominant Systems

Page 8: Family Tree's Journey Toward An Edge Dominant System

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)

Page 9: Family Tree's Journey Toward An Edge Dominant System

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)

Page 10: Family Tree's Journey Toward An Edge Dominant System

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)

Page 11: Family Tree's Journey Toward An Edge Dominant System

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)

Page 12: Family Tree's Journey Toward An Edge Dominant System

Edge Dominant System

A web-based system that depends almost exclusively on user input for its success.

Page 13: Family Tree's Journey Toward An Edge Dominant System

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)

◦ …

Page 14: Family Tree's Journey Toward An Edge Dominant System

Metropolis Structure of Edge Dominant Systems

Page 15: Family Tree's Journey Toward An Edge Dominant System

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

Page 16: Family Tree's Journey Toward An Edge Dominant System

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

Page 17: Family Tree's Journey Toward An Edge Dominant System

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

Page 18: Family Tree's Journey Toward An Edge Dominant System

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

Page 19: Family Tree's Journey Toward An Edge Dominant System

Key Family Tree Questions

Page 20: Family Tree's Journey Toward An Edge Dominant System

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?

Page 21: Family Tree's Journey Toward An Edge Dominant System

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?

Page 22: Family Tree's Journey Toward An Edge Dominant System

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

Page 23: Family Tree's Journey Toward An Edge Dominant System

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

Page 24: Family Tree's Journey Toward An Edge Dominant System

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

Page 25: Family Tree's Journey Toward An Edge Dominant System

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?

Page 26: Family Tree's Journey Toward An Edge Dominant System

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

Page 27: Family Tree's Journey Toward An Edge Dominant System

Summary

Page 28: Family Tree's Journey Toward An Edge Dominant System

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.

Page 29: Family Tree's Journey Toward An Edge Dominant System

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.