Download - Family Search Developer Conference - Challenges and Opportunities

Transcript
  • 1. 90th Percentile Times Family Tree (1x, w/ CIS) POC2 (1x) POC2 (10x) POC2 (20x) Person & Relationships 1730 ms 48 ms 33 ms 44 ms Pedigree 2700 ms 18 ms 36 ms 49 ms Pedigree Extend 2580 ms 12 ms 27 ms 35 ms Person Card 293 ms 14 ms 10 ms 10 ms Change History 5800 ms 35 ms 38 ms 50 ms Change History 6000 ms 21 ms 10 ms 11 ms Summary
  • 2. Cluster Nodes Type RAM Storage Cassandra 1.2.4 25-30 hi1.4xlarge 1.7 TB 58 TB (SSD) Eureka App 30-140 m3.2xlarge 1.0 TB -
  • 3. FamilySearchFamilyTree ft = ...; //add a person PersonState person= ft.addPerson(new Person() //named John Smith .name(new Name("John Smith", new NamePart(NamePartType.Given, "John"), new NamePart(NamePartType.Surname, "Smith"))) //male .gender(GenderType.Male) //born in chicago in 1920 .fact(new Fact(FactType.Birth, "1 January 1920", "Chicago, Illinois")) //died in new york 1980 .fact(new Fact(FactType.Death, "1 January 1980", "New York, New York"));
  • 4. String username = "..."; String password = "..."; String developerKey = "..."; String ark = ...; //e.g. "https://familysearch.org/ark:/61903/4:1:KW8W-RF8" FamilyTreePersonState person = new FamilyTreePersonState(URI.create(ark)) .authenticateViaOAuth2Password(username, password, developerKey);
  • 5. FamilySearch.getPersonWithRelationships('KW7S-VQJ', {persons:true}).then(function(response) { console.log(response.getPrimaryPerson().getName()); var spouses = response.getSpouses(); for (var s = 0; spousesLen = spouses.length; s < spousesLen; s++) { console.log(spouses[s].getName()); var children = response.getChildren(spouses[s].getId()); for (var c = 0; childrenLen = children.length; c < childrenLen; c++) { console.log(children[c].getName()); } } });