How saur1sh/asset-tokenization works
This is a microservices platform for fractionalized real-world assets, wallet compliance, trading, and settlement. The primary issuance workflow begins at settlement, which starts a saga; wallet and asset services lock funds and reserve inventory, then settlement completes or compensates the saga. A separate secondary-market path matches orders and triggers blockchain settlement. Pricing and periodic yield distribution are parallel capabilities. The source excerpts confirm the principal service calls and event producers; some consumer wiring is documented in the README but not sampled.
Main entry points: SettlementService.java Saga coordinator · AssetService.java Asset inventory · WalletService.java Wallet service · OrderService.java Order matching
Components 24
Issuance Saga
- Settlement API
settlement-service/src/main/java/com/rwa/settlement/controller/SettlementController.java - Saga coordinator
settlement-service/src/main/java/com/rwa/settlement/service/SettlementService.java - Saga store
settlement-service/src/main/java/com/rwa/settlement/repository/TradeSagaRepository.java - Saga outbox
settlement-service/src/main/java/com/rwa/settlement/repository/OutboxEventRepository.java
Asset Management
- Asset API
asset-service/src/main/java/com/rwa/asset/controller/AssetController.java - Asset inventory
asset-service/src/main/java/com/rwa/asset/service/AssetService.java - Assets and reservations
asset-service/src/main/java/com/rwa/asset/repository/AssetRepository.java - Inventory outbox
asset-service/src/main/java/com/rwa/asset/repository/OutboxEventRepository.java - Price update consumer
asset-service/src/main/java/com/rwa/asset/event/PriceEventConsumer.java - Yield distribution
asset-service/src/main/java/com/rwa/asset/service/YieldDistributionService.java
Wallet Compliance
- Wallet API
identity-wallet-service/src/main/java/com/rwa/wallet/controller/WalletController.java - Wallet service
identity-wallet-service/src/main/java/com/rwa/wallet/service/WalletService.java - Wallet and locks
identity-wallet-service/src/main/java/com/rwa/wallet/repository/WalletRepository.java - Wallet outbox
identity-wallet-service/src/main/java/com/rwa/wallet/repository/OutboxEventRepository.java - Yield credit consumer
identity-wallet-service/src/main/java/com/rwa/wallet/event/YieldEventConsumer.java
Market Services
- Order API
order-service/src/main/java/com/rwa/order/controller/OrderController.java - Order matching
order-service/src/main/java/com/rwa/order/service/OrderService.java - Order store
order-service/src/main/java/com/rwa/order/repository/OrderRepository.java - Price oracle
pricing-service/src/main/java/com/rwa/pricing/service/PriceOracleService.java
On-chain Settlement
- Trade settlement listener
settlement-service/src/main/java/com/rwa/settlement/service/Web3SettlementService.java - Contract transfer service
settlement-service/src/main/java/com/rwa/settlement/service/SmartContractService.java
Other components
- Platform user
- Kafka event backbone
- Hyperledger Besu
Connections 35
- Platform user → Settlement API: initiates trade
- Settlement API → Saga coordinator: starts or reads saga
- Saga coordinator → Saga store: stores saga
- Saga coordinator → Saga outbox: records events
- Saga outbox → Kafka event backbone: dispatches events
- Kafka event backbone → Wallet service: trade initiated
- Kafka event backbone → Asset inventory: trade initiated
- Wallet service → Wallet and locks: checks and locks funds
- Wallet service → Wallet outbox: records lock result
- Wallet outbox → Kafka event backbone: dispatches result
- Asset inventory → Assets and reservations: reserves fractions
- Asset inventory → Inventory outbox: records reservation result
- Inventory outbox → Kafka event backbone: dispatches result
- Kafka event backbone → Saga coordinator: funds and inventory results
- Saga coordinator → Saga store: completes or fails saga
- Saga coordinator → Kafka event backbone: emits match or failure
- Kafka event backbone → Wallet service: failure compensation
- Kafka event backbone → Asset inventory: failure compensation
- Platform user → Wallet API: manages wallet
- Wallet API → Wallet service: requests wallet operation
- Platform user → Asset API: creates asset
- Asset API → Asset inventory: creates asset
- Platform user → Order API: places order
- Order API → Order matching: submits order
- Order matching → Order store: stores and finds orders
- Order matching → Kafka event backbone: publishes matched trade
- Price oracle → Kafka event backbone: publishes price update
- Kafka event backbone → Price update consumer: price update
- Price update consumer → Asset inventory: updates asset price
- Yield distribution → Kafka event backbone: publishes yield
- Kafka event backbone → Yield credit consumer: yield distribution
- Yield credit consumer → Wallet service: credits holders
- Kafka event backbone → Trade settlement listener: matched trade
- Trade settlement listener → Contract transfer service: requests transfer
- Contract transfer service → Hyperledger Besu: submits transaction