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