How thembatman0/synthforge works
SynthForge is the repository’s documented product: a Spring Boot library that seeds JPA entities at startup in enabled profiles. The graph also shows RemitFlow, a separate remittance API represented by source files in the tree and sampled order-flow code. SynthForge’s subsystem wiring follows README documentation where available; unsampled implementation details and uncertain links are omitted.
Main entry points: SeedRunner.java Seed runner · OrderService.java Order workflow · SynthforgeAutoConfiguration.java Auto configuration · EntityScanner.java Entity scanner
Components 25
Spring startup integration
- Auto configuration
synthforge-spring/src/main/java/com/themba/synthforge/spring/SynthforgeAutoConfiguration.java - @Seed entities
synthforge-spring/src/main/java/com/themba/synthforge/spring/Seed.java - Seed settings
synthforge-spring/src/main/java/com/themba/synthforge/spring/SynthforgeProperties.java
Seed generation core
- Seed runner
synthforge-core/src/main/java/com/themba/synthforge/core/SeedRunner.java - Entity scanner
synthforge-core/src/main/java/com/themba/synthforge/core/EntityScanner.java - Dependency ordering
synthforge-core/src/main/java/com/themba/synthforge/core/SeedGraph.java - Field metadata
synthforge-core/src/main/java/com/themba/synthforge/core/FieldMetadata.java - Value generation
synthforge-core/src/main/java/com/themba/synthforge/core/GeneratorRegistry.java - Generation context
synthforge-core/src/main/java/com/themba/synthforge/core/GenerationContext.java - Custom generators
synthforge-core/src/main/java/com/themba/synthforge/core/FieldGenerator.java
Demo seed entities
- Demo JPA entities
synthforge-demo/src/main/java/com/themba/synthforge/demo/Counterparty.java - Payment entity
synthforge-demo/src/main/java/com/themba/synthforge/demo/Payment.java
RemitFlow API and domain
- Order endpoints
remitflow/src/main/java/com/themba/remitflow/OrderController.java - Order workflow
remitflow/src/main/java/com/themba/remitflow/OrderService.java - Counterparty endpoints
remitflow/src/main/java/com/themba/remitflow/CounterpartyController.java - Counterparty service
remitflow/src/main/java/com/themba/remitflow/CounterpartyService.java - Corridor endpoints
remitflow/src/main/java/com/themba/remitflow/CorridorController.java - Corridor service
remitflow/src/main/java/com/themba/remitflow/CorridorService.java
RemitFlow persistence
- Order repository
remitflow/src/main/java/com/themba/remitflow/RemittanceOrderRepository.java - Counterparty repository
remitflow/src/main/java/com/themba/remitflow/CounterpartyRepository.java - Corridor repository
remitflow/src/main/java/com/themba/remitflow/CorridorRepository.java
Other components
- Spring app startup
- Application database
- API client
- Remittance database
Connections 29
- Spring app startup → Auto configuration: starts
- Auto configuration → Seed settings: reads settings
- Auto configuration → Seed runner: configures
- Seed runner → Entity scanner: scans entities
- Entity scanner → Application database: reads metamodel
- Entity scanner → Dependency ordering: provides entities
- Dependency ordering → Seed runner: orders entities
- Seed runner → Field metadata: inspects fields
- Seed runner → Value generation: generates values
- Value generation → Generation context: uses state
- Value generation → Custom generators: checks custom
- Seed runner → Application database: persists seeds
- @Seed entities → Demo JPA entities: marks for seeding
- Demo JPA entities → Payment entity: referenced by
- Payment entity → Application database: seeded as entity
- API client → Order endpoints: sends requests
- API client → Counterparty endpoints: sends requests
- API client → Corridor endpoints: sends requests
- Order endpoints → Order workflow: dispatches
- Counterparty endpoints → Counterparty service: dispatches
- Corridor endpoints → Corridor service: dispatches
- Order workflow → Counterparty repository: checks beneficiary
- Order workflow → Corridor repository: loads corridor
- Order workflow → Order repository: saves and queries
- Counterparty service → Counterparty repository: reads and saves
- Corridor service → Corridor repository: reads and saves
- Order repository → Remittance database: persists orders
- Counterparty repository → Remittance database: persists counterparties
- Corridor repository → Remittance database: persists corridors