<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: anuj kumar</title>
    <description>The latest articles on DEV Community by anuj kumar (@anujkumar2).</description>
    <link>https://dev.to/anujkumar2</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4173726%2F6b339838-40d2-4ac4-97d0-32f77113db22.jpeg</url>
      <title>DEV Community: anuj kumar</title>
      <link>https://dev.to/anujkumar2</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/anujkumar2"/>
    <language>en</language>
    <item>
      <title>DDD, N-Layer and Microservices are not competing architectures.</title>
      <dc:creator>anuj kumar</dc:creator>
      <pubDate>Fri, 09 Oct 2026 17:33:42 +0000</pubDate>
      <link>https://dev.to/anujkumar2/ddd-n-layer-and-microservices-are-not-competing-architectures-2le4</link>
      <guid>https://dev.to/anujkumar2/ddd-n-layer-and-microservices-are-not-competing-architectures-2le4</guid>
      <description>&lt;p&gt;Yet they’re still discussed that way surprisingly often.&lt;br&gt;
The mistake is comparing them at the same level.&lt;br&gt;
DDD asks:&lt;br&gt;
How do we model a complex business domain correctly?&lt;br&gt;
N-Layer asks:&lt;br&gt;
How do we organise technical responsibilities cleanly?&lt;br&gt;
Microservices ask:&lt;br&gt;
How do we split a distributed system into independently deployable business capabilities?&lt;/p&gt;

&lt;p&gt;Those are three very different questions.&lt;br&gt;
And in a real system, you may use all three.&lt;br&gt;
For example, an &lt;em&gt;Order microservice&lt;/em&gt; could represent an Ordering bounded context, use DDD to protect invariants around orders and payments, and still structure its internals into application, domain, and infrastructure layers.&lt;/p&gt;

&lt;p&gt;The architecture lesson is simple:&lt;br&gt;
Don’t start with the pattern. Start with the problem.&lt;br&gt;
If the problem is domain complexity → think DDD.&lt;br&gt;&lt;br&gt;
If the problem is code separation → think layers.&lt;br&gt;&lt;br&gt;
If the problem is independent deployment, scaling, and ownership → think microservices.&lt;/p&gt;

&lt;p&gt;Architecture gets much clearer when we stop asking:&lt;br&gt;
“Which architecture is best?”&lt;br&gt;
and start asking:&lt;br&gt;
“Which architectural problem am I solving?”&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fq10big6g70c5vj0dfpu3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fq10big6g70c5vj0dfpu3.png" alt=" " width="800" height="877"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  SoftwareArchitecture #DDD #DomainDrivenDesign #Microservices #SystemDesign #DistributedSystems #Java #SpringBoot #SoftwareEngineering #TechnicalArchitecture
&lt;/h1&gt;

</description>
      <category>architecture</category>
    </item>
    <item>
      <title>🔐 Encryption vs Digital Signatures: Understanding the Difference</title>
      <dc:creator>anuj kumar</dc:creator>
      <pubDate>Fri, 09 Oct 2026 17:29:31 +0000</pubDate>
      <link>https://dev.to/anujkumar2/encryption-vs-digital-signatures-understanding-the-difference-4mk1</link>
      <guid>https://dev.to/anujkumar2/encryption-vs-digital-signatures-understanding-the-difference-4mk1</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6yilsc3u6c1a63501se7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6yilsc3u6c1a63501se7.png" alt=" " width="800" height="731"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Auth 2.0 + PKCE Explained: Understanding the Complete Authentication Flow</title>
      <dc:creator>anuj kumar</dc:creator>
      <pubDate>Fri, 09 Oct 2026 17:24:37 +0000</pubDate>
      <link>https://dev.to/anujkumar2/auth-20-pkce-explained-understanding-the-complete-authentication-flow-1724</link>
      <guid>https://dev.to/anujkumar2/auth-20-pkce-explained-understanding-the-complete-authentication-flow-1724</guid>
      <description>&lt;p&gt;OAuth 2.0 + PKCE Explained: Understanding the Complete Authentication Flow&lt;br&gt;
Ever wondered what actually happens behind the scenes when you click “Sign in with Google/Microsoft/etc.”?&lt;br&gt;
This diagram breaks down the OAuth 2.0 Authorization Code Flow with PKCE, step by step from the user authentication request to the final API access token.&lt;br&gt;
If you're learning OAuth 2.0, OIDC, or API security, this diagram should make the flow much easier to understand.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fkip0ur90b05msjcv30y3.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fkip0ur90b05msjcv30y3.gif" alt=" " width="720" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>api</category>
      <category>authentication</category>
      <category>security</category>
      <category>webdev</category>
    </item>
    <item>
      <title>OAuth 2.0 + OIDC + PKCE Explained: From Login to API Access 🔐</title>
      <dc:creator>anuj kumar</dc:creator>
      <pubDate>Fri, 09 Oct 2026 17:13:05 +0000</pubDate>
      <link>https://dev.to/anujkumar2/oauth-20-oidc-pkce-explained-from-login-to-api-access-5gfm</link>
      <guid>https://dev.to/anujkumar2/oauth-20-oidc-pkce-explained-from-login-to-api-access-5gfm</guid>
      <description>&lt;p&gt;OAuth 2.0 + OIDC + PKCE Explained: From Login to API Access 🔐&lt;/p&gt;

&lt;p&gt;What actually happens behind the scenes when you click “Sign in”?&lt;br&gt;
I created this visual data-flow diagram to break down the complete journey:&lt;br&gt;
User → Identity Provider → Authorization Code → PKCE → Tokens → API → Resource Server&lt;br&gt;
If you're learning OAuth 2.0, OIDC, or API security, this diagram should make the flow much easier to understand.&lt;/p&gt;

&lt;p&gt;Which part of the OAuth flow do you find most confusing?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fx05yf3g3o21xrpfcckyh.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fx05yf3g3o21xrpfcckyh.gif" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  OAuth2 #OpenIDConnect #SoftwareEngineering
&lt;/h1&gt;

</description>
      <category>oauth</category>
      <category>security</category>
      <category>architecture</category>
    </item>
    <item>
      <title>What Actually Happens When You Index a Document in Elasticsearch?</title>
      <dc:creator>anuj kumar</dc:creator>
      <pubDate>Fri, 09 Oct 2026 17:07:58 +0000</pubDate>
      <link>https://dev.to/anujkumar2/what-actually-happens-when-you-index-a-document-in-elasticsearch-3g5n</link>
      <guid>https://dev.to/anujkumar2/what-actually-happens-when-you-index-a-document-in-elasticsearch-3g5n</guid>
      <description>&lt;p&gt;Let me know where you use it in your current or past projects , and what kind of challenges your faced?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fcxjj9uw2xui2fadx2ddr.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fcxjj9uw2xui2fadx2ddr.gif" alt=" " width="760" height="950"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>What Actually Happens When You Search in Elasticsearch?</title>
      <dc:creator>anuj kumar</dc:creator>
      <pubDate>Fri, 09 Oct 2026 17:05:35 +0000</pubDate>
      <link>https://dev.to/anujkumar2/what-actually-happens-when-you-search-in-elasticsearch-1mm5</link>
      <guid>https://dev.to/anujkumar2/what-actually-happens-when-you-search-in-elasticsearch-1mm5</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fc16gs1pw0qaz2hf0mth2.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fc16gs1pw0qaz2hf0mth2.gif" alt=" " width="800" height="1000"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Kafka vs NATS vs Kinesis: The Streaming Decision Map Engineers Wish They Had Before Production.</title>
      <dc:creator>anuj kumar</dc:creator>
      <pubDate>Fri, 09 Oct 2026 17:02:14 +0000</pubDate>
      <link>https://dev.to/anujkumar2/kafka-vs-nats-vs-kinesis-the-streaming-decision-map-engineers-wish-they-had-before-production-3oek</link>
      <guid>https://dev.to/anujkumar2/kafka-vs-nats-vs-kinesis-the-streaming-decision-map-engineers-wish-they-had-before-production-3oek</guid>
      <description>&lt;p&gt;Kafka vs NATS vs Kinesis: The Streaming Decision Map Engineers Wish They Had Before Production.&lt;br&gt;
Let me know which one you use and what kind of challenges you face with these systems in your day-to-day operations.&lt;/p&gt;

&lt;p&gt;I have experienced that Kinesis Stream read/write limit is shared across all consumers unless you opt for premium feature EFO( enhanced fan out) is sound like a constraint but I have seen it working just fine for 67 millions events per day as that limit is per shard and best part is that is is serverless so no need to worry for any infra or scaling issues during season peaks.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdccsmu7a757tdl44ksd9.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdccsmu7a757tdl44ksd9.gif" alt=" " width="800" height="1000"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>kafka</category>
      <category>architecture</category>
    </item>
    <item>
      <title>🚀 Zero-Downtime Database Schema Migration: How to Evolve Without Breaking Production</title>
      <dc:creator>anuj kumar</dc:creator>
      <pubDate>Fri, 09 Oct 2026 16:58:13 +0000</pubDate>
      <link>https://dev.to/anujkumar2/zero-downtime-database-schema-migration-how-to-evolve-without-breaking-production-45dg</link>
      <guid>https://dev.to/anujkumar2/zero-downtime-database-schema-migration-how-to-evolve-without-breaking-production-45dg</guid>
      <description>&lt;p&gt;🚀 Zero-Downtime Database Schema Migration: How to Evolve Without Breaking Production&lt;br&gt;
Situation&lt;br&gt;
A live Spring Boot service depended on an Oracle RDS schema that required a major redesign, new tables, new columns, changed relationships, and migrated data while existing consumers still needed uninterrupted access.&lt;br&gt;
Task&lt;br&gt;
Introduce the new schema and application version with zero downtime, while preserving backward compatibility and maintaining a safe rollback path.&lt;br&gt;
Action&lt;br&gt;
I would use an Expand → Migrate → Switch → Contract approach:&lt;br&gt;
• Expand the database with the new schema without breaking the old one&lt;br&gt;
• Deploy a bridge version supporting both models&lt;br&gt;
• Dual-write to old and new structures&lt;br&gt;
• Backfill and reconcile historical data&lt;br&gt;
• Canary-release the new Spring Boot version&lt;br&gt;
• Gradually switch reads to the new schema&lt;br&gt;
• Keep the legacy model available during the rollback window&lt;br&gt;
• Retire old tables only after production stability is proven&lt;br&gt;
Result&lt;br&gt;
The architecture enables schema evolution with no consumer downtime, controlled migration risk, progressive validation, and rapid rollback capability.&lt;br&gt;
The key lesson:&lt;br&gt;
👉 Never make the database incompatible with the application version currently serving production traffic.&lt;br&gt;
The diagram below visualises the complete migration journey from legacy schema to the new model.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3nbm8kcktmtksulvojbr.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3nbm8kcktmtksulvojbr.gif" alt=" " width="600" height="338"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  SoftwareArchitecture #SystemDesign #SpringBoot #Java #AWS #Oracle #DatabaseMigration #ZeroDowntime #Microservices #CloudArchitecture #SolutionArchitecture
&lt;/h1&gt;

</description>
      <category>architecture</category>
      <category>backend</category>
      <category>database</category>
      <category>devops</category>
    </item>
    <item>
      <title>The Outbox Pattern isn't really about messaging. It's about eliminating an impossible atomicity assumption</title>
      <dc:creator>anuj kumar</dc:creator>
      <pubDate>Fri, 09 Oct 2026 16:56:39 +0000</pubDate>
      <link>https://dev.to/anujkumar2/the-outbox-pattern-isnt-really-about-messaging-its-about-eliminating-an-impossible-atomicity-48cc</link>
      <guid>https://dev.to/anujkumar2/the-outbox-pattern-isnt-really-about-messaging-its-about-eliminating-an-impossible-atomicity-48cc</guid>
      <description>&lt;p&gt;The Outbox Pattern isn't really about messaging. It's about eliminating an impossible atomicity assumption: “I'll update my database and then publish the event.” This visual shows what actually happens when failure occurs between those two operations, and why idempotency is still required.&lt;/p&gt;

&lt;p&gt;The invariant is a committed business change must not become disconnected from the event describing that change. The application therefore commits the business record and outbox record in one local transaction; a relay or CDC process publishes the committed outbox event asynchronously. This is a solution to the distributed-system dual-write problem.&lt;/p&gt;

&lt;p&gt;The subtle point is that Outbox does not magically create exactly-once processing. Publication can still be retried and consumers should remain idempotent.&lt;/p&gt;

&lt;p&gt;Use unique event ID for deduplication and uses the aggregate ID as the event key, which matters for preserving aggregate ordering in Kafka partitions. &lt;/p&gt;

&lt;p&gt;At 10× scale, the interesting bottleneck frequently moves from the broker to the outbox table and publisher: polling frequency, indexes, cleanup, CDC lag, payload size and partition-key distribution become architecture concerns.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fr7vpz17dv8v3daftooa8.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fr7vpz17dv8v3daftooa8.gif" alt=" " width="800" height="1000"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>architecture</category>
      <category>backend</category>
      <category>database</category>
      <category>distributedsystems</category>
    </item>
    <item>
      <title>CAP Theorem finally clicked for me when I stopped thinking “pick 2 out of 3.”</title>
      <dc:creator>anuj kumar</dc:creator>
      <pubDate>Fri, 09 Oct 2026 16:46:00 +0000</pubDate>
      <link>https://dev.to/anujkumar2/cap-theorem-finally-clicked-for-me-when-i-stopped-thinking-pick-2-out-of-3-1jlk</link>
      <guid>https://dev.to/anujkumar2/cap-theorem-finally-clicked-for-me-when-i-stopped-thinking-pick-2-out-of-3-1jlk</guid>
      <description>&lt;p&gt;Imagine an eCommerce platform running across US and EU regions.&lt;br&gt;
There is 1 item left.&lt;br&gt;
Two customers try to buy it.&lt;br&gt;
Then the network between the regions fails.&lt;br&gt;
Now the architecture has a decision to make:&lt;br&gt;
🟢 Protect Consistency&lt;br&gt;&lt;br&gt;
If the region cannot establish the authority required to reserve that inventory, wait or reject the operation rather than risk selling the same unit twice.&lt;br&gt;
🟠 Protect Availability&lt;br&gt;&lt;br&gt;
For something like a product catalog or parcel-tracking read model, continue serving local data even if it may temporarily be stale, then reconcile when connectivity returns.&lt;br&gt;
The important lesson:&lt;br&gt;
Partition tolerance isn't really the choice in a multi-region system. Network partitions will happen.&lt;br&gt;
The architectural question becomes:&lt;br&gt;
When communication fails, which guarantee matters more for this specific operation — consistency or availability?&lt;br&gt;
And one subtle point that is often missed:&lt;br&gt;
CAP does not decide whether US or EU “wins.”&lt;br&gt;
That comes from your ownership model, quorum/consensus mechanism, routing strategy, or business rules.&lt;br&gt;
This is also why I wouldn't simply label an architecture with stateless application servers and one database as “CA.” CAP becomes operationally interesting when distributed copies of state can no longer reliably coordinate.&lt;br&gt;
For architects, the better question isn't:&lt;br&gt;
“Is my system CP or AP?”&lt;br&gt;
It is:&lt;br&gt;
“Which business invariant am I protecting during a partition, and what am I prepared to sacrifice to protect it?”&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fp01mo451zvk7e9oy5gon.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fp01mo451zvk7e9oy5gon.gif" alt=" " width="720" height="900"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  SoftwareArchitecture #DistributedSystems #CAPTheorem #SystemDesign #Microservices #AWS #Java #CloudArchitecture #TechnicalArchitecture
&lt;/h1&gt;

</description>
    </item>
    <item>
      <title>Retries + Backoff + Jitter: How a Small Failure Becomes a Retry Storm.</title>
      <dc:creator>anuj kumar</dc:creator>
      <pubDate>Fri, 09 Oct 2026 16:29:34 +0000</pubDate>
      <link>https://dev.to/anujkumar2/retries-backoff-jitter-how-a-small-failure-becomes-a-retry-storm-37lb</link>
      <guid>https://dev.to/anujkumar2/retries-backoff-jitter-how-a-small-failure-becomes-a-retry-storm-37lb</guid>
      <description>&lt;p&gt;Retries + Backoff + Jitter: How a Small Failure Becomes a Retry Storm.&lt;/p&gt;

&lt;p&gt;Retries improve availability until they become the outage. The dangerous question isn't How many retries should we configure? It's which layer owns the retry, is the operation idempotent, and what happens when 10,000 clients retry together?&lt;/p&gt;

&lt;p&gt;The key mental model is a retry consumes additional capacity from the system that may already be failing. AWS's Builders' Library gives a particularly memorable example: with a five-deep service stack and three retries independently occurring at each layer, load against the database can increase 243×&lt;br&gt;
Backoff alone isn't enough. Correlated clients can wake up together and generate another burst, which is why jitter spreads retry arrival times.&lt;/p&gt;

&lt;p&gt;The other architect-level subtlety is timeout ambiguity. A timeout tells the caller that it didn't receive a successful response; it doesn't prove the remote operation didn't happen. Side-effecting operations such as payment creation, order submission or label purchase therefore need idempotency semantics before automatic retries are safe.&lt;/p&gt;

&lt;p&gt;I hope below visual model helps to understand it better. Let me what kind of issues you faced with retried in in which layer, and do you track it?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmkd5t3gw2zcewc59qelf.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmkd5t3gw2zcewc59qelf.gif" alt=" " width="800" height="1000"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>architecture</category>
    </item>
    <item>
      <title>🚀Stop letting your monitoring agents slow down your production traffic!</title>
      <dc:creator>anuj kumar</dc:creator>
      <pubDate>Fri, 09 Oct 2026 16:21:54 +0000</pubDate>
      <link>https://dev.to/anujkumar2/stop-letting-your-monitoring-agents-slow-down-your-production-traffic-4fjb</link>
      <guid>https://dev.to/anujkumar2/stop-letting-your-monitoring-agents-slow-down-your-production-traffic-4fjb</guid>
      <description>&lt;p&gt;Ever wondered if tracking metrics, traces, and logs (MELT: Metrics, Events, Logs, and Traces) impacts your application performance during massive peak loads?&lt;/p&gt;

&lt;p&gt;The magic lies in Asynchronous OTLP( Open Telemetry Protocol) Execution.&lt;/p&gt;

&lt;p&gt;When a user hits "Checkout" in a high-volume Spring Boot eCommerce app, the application doesn't wait for your monitoring tools to say "received". Instead, it hands the telemetry data to a lightning-fast, non-blocking in-memory queue and instantly responds to the customer.&lt;/p&gt;

&lt;p&gt;Background daemon threads handle the heavy lifting—compressing, batching, and shipping those records to platforms like Splunk AppDynamics or Prometheus over gRPC. And if the backend fails under heavy load? Built-in memory boundaries intentionally drop telemetry data rather than allowing a monitoring bottleneck to crash your production database.&lt;/p&gt;

&lt;p&gt;Check out this data flow layout showing how modern OpenTelemetry architecture separates the synchronous user path from asynchronous telemetry shipping! 🌟&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fc7u1nllgh44rfjvmfwgb.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fc7u1nllgh44rfjvmfwgb.gif" alt=" " width="720" height="531"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  OpenTelemetry #SpringBoot #Java #AppDynamics #Architecture #DevOps #Observability #CloudNative #APM
&lt;/h1&gt;

</description>
      <category>java</category>
      <category>monitoring</category>
      <category>performance</category>
      <category>springboot</category>
    </item>
  </channel>
</rss>
