Files
familienarchiv/docs/architecture/c4/l3-backend-3e-persons.puml

2.3 KiB

Component Diagram: API Backend — Persons & Family GraphComponent Diagram: API Backend — Persons & Family GraphAPI Backend (Spring Boot)[system]«component»PersonController[Spring MVC â€” /api/persons] Lists and searches familymembers. Returnsdocuments sent by orreceived by a person,correspondent suggestions,and person summary withdocument counts.«component»RelationshipController[Spring MVC â€” /api/network,/api/persons/{id}/relationships] CRUD for explicit personrelationships and the fullfamily network graph(nodes + edges) used bythe Stammbaum view.«component»PersonService[Spring Service] Person CRUD, aliasmanagement, and mergeoperations (reassigns alldocument sender/receiverreferences before deletingduplicate persons).«component»RelationshipService[Spring Service] Manages explicit directionalfamily relationships(PARENT_OF, SPOUSE_OF,SIBLING_OF, etc.) withoptional date ranges andnotes.«component»RelationshipInferenceService[Spring Service] Computes transitive familyrelationships from explicitedges to infergrandparent/grandchild,aunt/uncle, and otherextended-family links forthe network graph.«component»PersonRepository[Spring Data JPA] Queries persons with namesearch (including aliases),correspondent discovery,person summaries withdocument counts, andmerge/reassignmenthelpers.«component»PersonRelationshipRepository[Spring Data JPA] Reads and writesPersonRelationship records.Supports lookup by personID, by relation type, andexistence checks fordeduplication.«container»Web Frontend[SvelteKit]«container»PostgreSQL[PostgreSQL 16]Person requests[HTTP / JSON]Relationship andgraph requests[HTTP / JSON]Delegates toDelegates toQueries inferredgraphReads / writespersonsReads / writesrelationshipsReads relationshipsfor inferenceSQL queries[JDBC]SQL queries[JDBC]