Data ModelingDescribe the Model in Terms of the Application’s NeedsNodes for Things, Relationships for StructureFine-Grained versus Generic RelationshipsModel Facts as NodesEmploymentPerformanceEmailingReviewingRepresent Complex Value Types as NodesTimeTimeline treesLinked listsVersioningIterative and Incremental DevelopmentApplication ArchitectureEmbedded Versus ServerEmbedded Neo4jServer modeServer extensionsClusteringReplicationBuffer writes using queuesGlobal clustersLoad BalancingSeparate read traffic from write trafficCache shardingRead your own writesTestingTest-Driven Data Model DevelopmentExample: A test-driven social network data modelTesting server extensionsPerformance TestingQuery performance testsApplication performance testsTesting with representative dataCapacity PlanningOptimization CriteriaPerformanceCalculating the cost of graph database performancePerformance optimization optionsRedundancyLoadSummary