mirror of
https://github.com/lux-apps/papers.git
synced 2026-10-30 18:15:21 +00:00
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.
16 lines
1.2 KiB
TeX
16 lines
1.2 KiB
TeX
\section{Limitations}
|
|
|
|
%% ============================================================================
|
|
|
|
\begin{enumerate}
|
|
\item \textbf{No schema evolution}: ZAP messages have fixed layouts. Adding a field requires a protocol version bump and coordinated upgrade. For consensus protocols, this is acceptable (hard forks already require coordinated upgrades). For general-purpose RPC, Cap'n Proto or FlatBuffers are more appropriate.
|
|
|
|
\item \textbf{Loopback testing}: Our latency benchmarks use loopback interfaces. Cross-datacenter latency ($\sim$1ms) would dominate the protocol differences. However, ZAP's advantage is most critical for intra-cluster consensus where nodes are co-located.
|
|
|
|
\item \textbf{Go-specific}: The zero-allocation property depends on Go's escape analysis and stack allocation. In languages without managed memory (C, Rust), the allocation distinction is less meaningful.
|
|
|
|
\item \textbf{No streaming}: ZAP uses request-response semantics. gRPC's bidirectional streaming is advantageous for use cases requiring server push (e.g., block subscription). ZAP addresses this with explicit pub/sub message types rather than transport-level streaming.
|
|
\end{enumerate}
|
|
|
|
%% ============================================================================
|