The document discusses Family Tree's journey toward adopting an edge dominant software architecture. It describes edge dominant systems and the metropolis structure involving a core developed by professionals and a periphery developed by prosumers and used by consumers. The Family Tree currently has a monolithic core but is working to improve modularity, scalability, and performance. Key questions involve what architectural improvements and additional capabilities the core needs to provide emerging needs like genealogical research and graph data relations.
Family Tree's Journey Toward an Edge Dominant Architecture
1. Family Tree's Journey Toward An Edge Dominant System Architecture
RANDY YNCHAUSTI
SOFTWARE ARCHITECT –FAMILY TREE APPLICATION
FAMILYSEARCH.ORG
2. Outline
1.Preface
2.Software Architecture
3.Edge Dominant Systems
4.Metropolis Structure of Edge Dominant Systems
5.Key Family Tree Questions
6.Summary
4. 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
6. 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
8. 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)
9. 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)
10. 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)
11. 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)
12. Edge Dominant System
A web-based system that depends almost exclusively on user input for its success.
13. Edge Dominant System
What 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)
◦…
15. Metropolis Structure
of 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: ConsumersEdge: ProsumersCore: Developers
16. Metropolis Structure
Core
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
17. 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: ConsumersEdge: ProsumersCore: Developers
18. 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
20. Family Tree
Key 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?
21. Family Tree
Key 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?
22. Family Tree Core
Simplified, Current View of the Core
MonolithService LayerCommon PedigreePersistenceTempleReservationTempleSubsystemSupportPublic APIDataImport<Common Pedigree> DMC SupportData ManagementConsoleDataMart<Common Pedigree> DataMart SupportWatch-Notify Common Pedigree, Temple Reservation, Temple Subsystem, Conclusion TreeDataMart TempleSubsystem Temple Subsystem DiscussionsOngoing Updates<Worker> Batch ProcessingThrottling Church Membership Church MembershipTempleReservationPublish-SubscribeTree Data Publish- Subscribe Platform APIThrottlingSourcesFamily Tree UserConclusion TreeAuthenticationAuthorization Authentication and Authorization User SessionSearch SearchMatch Match
23. Family Tree Core
Manage Ancestor Pedigree Data
MonolithService LayerCommon PedigreePersistenceTempleReservationTempleSubsystemSupportPublic APIDataImport<Common Pedigree> DMC SupportData ManagementConsoleDataMart<Common Pedigree> DataMart SupportWatch-Notify Common Pedigree, Temple Reservation, Temple Subsystem, Conclusion TreeDataMart TempleSubsystem Temple Subsystem DiscussionsOngoing Updates<Worker> Batch ProcessingThrottling Church Membership Church MembershipTempleReservationPublish-SubscribeTree Data Publish- Subscribe Platform APIThrottlingSourcesFamily Tree UserConclusion TreeAuthenticationAuthorization Authentication and Authorization User SessionSearch SearchMatch Match
24. Family Tree Core
Simplified, Future View of the Core
MonolithService LayerCommon PedigreePersistence Common Pedigree, Temple Reservation, Temple Subsystem, Conclusion Tree Tree DataConclusion TreePlatform APIThrottlingTree FoundationPersistenceTree DataCloudFamily Tree User Family Tree User
25. Family Tree
Key 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?
26. Family Tree
Key questions regarding our edge dominant architecture:
1.What architecture improvements does the Family Tree core need?
a.Modularity
b.Scalability
c.Performance
2.What capability (data and/or service) needs are emerging from the periphery?
a.Genealogical Research, Campaign Workflow, Business Research
a.Graph (node-edge) data relations
28. Summary
Family 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.
29. Summary
The 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.