Files
papers/lux-id-did-specification/sections/09-performance-and-scalability.tex
zeekay abf99d05fc papers: reorganize into per-paper dirs, add Antje Worring as co-author
Restructured from flat .tex/.pdf files into per-paper subdirectories.
Added Antje Worring as co-author on all papers.
Synced PDFs to pdfs/ for download site.
2026-04-18 21:50:07 -07:00

69 lines
2.0 KiB
TeX

\section{Performance and Scalability}
\subsection{Production Metrics (5 Years)}
\begin{table}[h]
\centering
\begin{tabular}{@{}lll@{}}
\toprule
\textbf{Metric} & \textbf{Value} & \textbf{Notes} \\ \midrule
Total Users & 250,000+ & Across mainnet and testnet \\
Daily Active Users & 15,000+ & 6\% DAU/MAU ratio \\
Authentication Requests & 5M+/day & Peak: 12M/day \\
Latency (p50) & 45 ms & OAuth token issuance \\
Latency (p99) & 180 ms & Including database queries \\
Availability & 99.95\% & 4.4 hours downtime/year \\
WebAuthn Adoption & 12\% & Growing 2\% per quarter \\
Web3 Wallet Auth & 8\% & 20,000 unique addresses \\ \bottomrule
\end{tabular}
\caption{Lux ID Production Metrics (2020-2025)}
\end{table}
\subsection{Scalability Architecture}
\subsubsection{Horizontal Scaling}
\begin{itemize}
\item Stateless backend: Deploy multiple instances behind load balancer
\item Session storage in Redis cluster (3-node quorum)
\item Database read replicas for high-read workloads
\end{itemize}
\subsubsection{Caching Strategy}
\begin{itemize}
\item User profiles: Redis cache (5-minute TTL)
\item JWKS: In-memory cache (1-hour TTL)
\item DID Documents: CDN + Redis (15-minute TTL)
\end{itemize}
\subsubsection{Rate Limiting}
Prevent abuse via token bucket algorithm:
\begin{itemize}
\item Login attempts: 5 per 15 minutes per IP
\item Token requests: 100 per hour per client
\item DID resolution: 1,000 per hour per IP
\end{itemize}
\subsection{Benchmarking}
\textbf{Test Setup}: 8-core CPU, 16GB RAM, MySQL 8.0, Redis 7.0
\begin{table}[h]
\centering
\begin{tabular}{@{}lll@{}}
\toprule
\textbf{Operation} & \textbf{Throughput} & \textbf{Latency (p50)} \\ \midrule
OAuth Authorization & 1,200 req/s & 35 ms \\
Token Exchange & 800 req/s & 52 ms \\
UserInfo Query & 2,500 req/s & 18 ms \\
WebAuthn Challenge & 1,000 req/s & 28 ms \\
WebAuthn Verify & 600 req/s & 75 ms \\
DID Resolution & 3,000 req/s & 12 ms \\ \bottomrule
\end{tabular}
\caption{Single-Instance Benchmarks}
\end{table}