Technology Radar

BYLD Wealth Platform — Technology Choices & Rationale
Adopt
Trial
Assess
Hold
ADOPT TRIAL ASSESS HOLD Java 21 Spring Boot 3.4 Kotlin CMP Next.js Spring Sec 6 Resilience4j Separate FE Claude API PostgreSQL 16 Redis 7 Kafka MSK ArgoCD pgvector Pinecone Debezium Schema Reg Custom ML EKS + Istio TimescaleDB Kafka Streams Clean Arch DDD CQRS Multi-LLM Hindi TTS Orchestration
Languages & Frameworks
Tools
Platforms
Techniques

Languages & Frameworks

Java 21 + Spring Boot 3.4
Virtual threads, pattern matching. Battle-tested for Indian fintech regulatory compliance.
All backend services
Kotlin CMP
Shared business logic across Android & iOS. 70% code sharing target.
Mobile app
Next.js 14
SSR for SEO, RSC for performance. Single framework for web dashboard.
Web dashboard
Spring Security 6
OAuth2 + OIDC + JWT. SEBI-grade auth with role-based access control.
Gateway, Identity
Resilience4j
Circuit breaker + rate limiter for external API calls (BSE, AA, payment gateways).
Gateway, Distribution
Separate FE Frameworks
Avoid React + Vue + Angular fragmentation. Stick to Next.js for all web surfaces.
HOLD — use Next.js only

Tools

Claude API (Sonnet)
Powers MIA chatbot. Best reasoning for financial advice. Structured outputs for tool use.
MIA service
PostgreSQL 16
ACID compliance for financial transactions. JSONB for flexible schemas. RLS for tenancy.
All services
Redis 7
Session cache, rate limiting, real-time portfolio NAV cache. Sub-ms latency.
Gateway, Portfolio, Markets
Kafka MSK
Event-driven async between services. Managed Kafka reduces ops burden. Exactly-once semantics.
Portfolio, Distribution, Notifications
ArgoCD
GitOps for K8s deployments. Declarative, auditable rollouts with auto-sync.
DevOps
pgvector + Pinecone
RAG for MIA knowledge base. pgvector for small docs, Pinecone for regulatory corpus.
MIA service
Debezium CDC
Change data capture from PostgreSQL to Kafka. Needed for CQRS read models.
Portfolio (future)
Custom ML Models
Team lacks ML expertise. Claude API covers 95% of use cases. Avoid training burden.
HOLD — use Claude API

Platforms

EKS + Istio
Managed K8s with service mesh. mTLS, traffic management, observability built in.
All services
TimescaleDB
Time-series for market data (OHLCV). Extension of PostgreSQL — no new DB to manage.
Markets service
Schema Registry
Avro schema evolution for Kafka events. Prevents breaking changes across services.
All Kafka producers
Kafka Streams
Too complex for team size. Use simple consumers with Spring Kafka instead.
HOLD — use Spring Kafka

Techniques

Clean Architecture
Hexagonal ports & adapters. Domain logic isolated from infrastructure. Testable core.
All services
Domain-Driven Design
Bounded contexts per service. Ubiquitous language with SEBI/AMFI domain terms.
Advisory, Distribution, Portfolio
CQRS (Dashboard)
Separate read/write for portfolio dashboard. Pre-computed views for sub-100ms loads.
Portfolio service
Multi-Model LLM Routing
Route simple queries to Haiku, complex to Sonnet. Cost optimization for MIA at scale.
MIA service
Hindi TTS
Voice responses in Hindi for HNI families. Assess quality of available TTS engines.
MIA service
Microservice Orchestration
Use choreography (events) instead. Orchestration creates temporal coupling & single points of failure.
HOLD — use choreography