Vector Search Lands in DynamoDB Natively — Issue #89 AWS added a native vector search API to DynamoDB, allowing developers to store and query embeddings directly in the database and eliminating the need for a separate vector database. A Carnegie Mellon study found that AI coding tools like Cursor provide a temporary velocity boost that disappears by month three, while permanently increasing code complexity and warnings. LangChain released reproducible evaluation datasets with execution traces to help developers benchmark RAG pipelines and agents against published baselines. This week shipped one of the more consequential infrastructure changes in a while: DynamoDB absorbed vector search, collapsing a common two-database architecture into one. Meanwhile, a CMU study put hard numbers on something senior engineers have suspected about AI coding tools, and a 3B parameter model posted reasoning scores that have no business coming from a model that size. AWS added a SearchVectors API to DynamoDB, letting you store embeddings alongside your application data and query them directly—no Pinecone, no Weaviate, no synchronization layer between your transactional store and your vector index. This matters because the dual-database pattern is genuinely painful at scale. You write to DynamoDB, you write to your vector DB, you manage consistency between them, you pay for two systems, and you debug failures in both. For RAG pipelines and semantic search on data that already lives in DynamoDB, that overhead exists purely because vector search wasn't available where your data was. Now it is. Setup requires picking an embedding model Bedrock, Cohere, or OpenAI , configuring a vector index with dimensions and distance function, and rewriting retrieval queries to SearchVectors . Vector operations are billed separately per GB across writes, reads, and storage—so run the math before assuming this is cheaper than your current setup. Verdict: Ship if you're already on DynamoDB and maintaining a separate vector DB. The architectural simplification is real. Start with a proof-of-concept on a non-critical workload to validate cost and latency before migrating production RAG infrastructure. Carnegie Mellon tracked 806 repositories after Cursor adoption and found that the velocity boost disappears by month three. What doesn't disappear: a 30% increase in warnings and 41% higher code complexity that persists indefinitely and cuts future velocity by 50–64%. This is the compounding debt problem made measurable. AI-assisted code ships faster in week one because it skips the friction that normally catches problems—careful review, deliberate refactoring, conservative abstractions. That friction isn't waste; it's load-bearing. When you remove it without replacing it, you borrow velocity from future sprints at high interest. The fix isn't avoiding AI coding tools. It's treating them as a process change, not just a speed upgrade. That means deeper code review not shallower, because the code comes faster , tighter SonarQube scanning, mutation testing to verify behavior not just coverage, and feeding compiler/linter/type-checker output back into agent workflows before anything hits main. Verdict: Worth using, but not without process upgrades. If your team adopted Cursor in the last six months without changing review depth or quality gates, audit your complexity metrics now. The three-month cliff is coming if it hasn't arrived already. LangChain published reproducible evaluation datasets with full execution traces through LangSmith, letting you run your RAG pipeline or agent against real tasks and compare results against published baselines—GPT-4 at 0.50 accuracy on LangChain Docs Q&A, Zephyr-7B at 0.31. Generic benchmarks don't tell you which architectural decision actually moved your metrics. Shared datasets with step-by-step traces do, because you can isolate the variable: swap the retriever, rerun the eval, compare. That's the difference between knowing a technique benchmarks well in a paper and knowing it helps your specific workload. Getting started requires a LangSmith account and pip install langchain-benchmarks . The practical starting point is running your existing RAG chain against the LangChain Docs Q&A dataset and drilling into traces where your scores diverge from baseline. Verdict: Evaluate now. This replaces ad-hoc eval spreadsheets and gut-feel model comparisons. If you're building production LLM apps and not running structured evals, this is the lowest-friction entry point available. VibeThinker-3B posted AIME26 97.1 and LiveCodeBench 80.2 Pass@1 through curriculum fine-tuning and offline self-distillation. Those are frontier-tier scores from a 3 billion parameter model. The implication is direct: if you're routing hard math or code completion tasks to a large model because you assumed you had to, that assumption needs retesting. Smaller models with test-time scaling applied at the claim level can handle verifiable reasoning workloads at a fraction of the inference cost and latency. The parameter-to-performance curve for these task types has shifted. Integrating this requires test-time scaling support and curriculum-aware fine-tuning pipelines, so it's not a drop-in swap. But if you're running reasoning inference at scale, the cost and latency delta between a 3B and a 70B+ model is large enough that evaluation is clearly worth the time. Verdict: Evaluate against your own benchmarks before committing. Run your AIME or LiveCodeBench subsets, compare against your current model, and let the numbers decide. Don't assume large models are required for hard reasoning tasks anymore. Vercel's AI Gateway now lets you set speed: 'fast' once in providerOptions.gateway and routes to low-latency model variants automatically, with fallback to standard if fast mode isn't available for that provider. Per-provider fast mode APIs have different syntax, different availability, and require you to manage routing logic manually. The unified parameter eliminates that surface area. You get lower latency where it's available without model pinning or provider-specific conditionals in your code. It's in beta, fast variants cost more per token, and adoption requires updating existing generateText calls. The implementation lift is low. Verdict: Ship. If you're using AI Gateway and latency matters, update the parameter. The abstraction holds up and the fallback behavior means you're not betting on provider availability. Claude Code now ships /loop time-triggered iteration and /goal condition-triggered iteration as primitives for running agent workflows autonomously—PR review monitoring, failing test remediation, queue processing—while you work on something else. The manual version of this is already part of most engineers' days: run Claude, copy output, apply it, run tests, repeat. Moving that cycle into an agent-controlled loop recovers real time and keeps you in flow on separate work. The pattern is solid for anything with a clear trigger condition and verifiable completion state. Git worktrees are essential if you run multiple loops in parallel—without them, branch conflicts become the bottleneck. Start with a watched PR loop /loop on review comments or a failing test loop /goal with pass/lint conditions to build intuition before expanding scope. Verdict: Ship on contained, verifiable tasks. Start narrow, validate the loop behavior on low-stakes work, then expand. Don't run parallel loops without worktrees. If this breakdown saves you time evaluating what's actually worth integrating versus what's noise, Dev Signal runs every week at thedevsignal.com https://thedevsignal.com . Senior engineers who want the signal without the marketing copy tend to find it useful.