<?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: Ravisankar.ponugoti</title>
    <description>The latest articles on DEV Community by Ravisankar.ponugoti (@ravisankar_p_4f803a7ee688).</description>
    <link>https://dev.to/ravisankar_p_4f803a7ee688</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%2F4099311%2F74562cb0-449c-4d82-980e-5bc4d0ce6a1d.png</url>
      <title>DEV Community: Ravisankar.ponugoti</title>
      <link>https://dev.to/ravisankar_p_4f803a7ee688</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ravisankar_p_4f803a7ee688"/>
    <language>en</language>
    <item>
      <title>7 Essential DynamoDB Fundamentals Every AWS User Should Know !!!!!!!</title>
      <dc:creator>Ravisankar.ponugoti</dc:creator>
      <pubDate>Thu, 08 Oct 2026 17:52:01 +0000</pubDate>
      <link>https://dev.to/ravisankar_p_4f803a7ee688/7-essential-dynamodb-fundamentals-every-aws-user-should-know--2mh2</link>
      <guid>https://dev.to/ravisankar_p_4f803a7ee688/7-essential-dynamodb-fundamentals-every-aws-user-should-know--2mh2</guid>
      <description>&lt;p&gt;DynamoDB is a cloud-based NoSQL database that stores information in a key-value format. As a non-relational database, it does not use structured tables like traditional relational databases, allowing for greater flexibility and scalability. This allows applications to quickly access and manage large amounts of data without performance issues.&lt;/p&gt;

&lt;p&gt;Understanding DynamoDB’s core features is important for using it effectively in AWS-based systems. This post covers key DynamoDB concepts to help you build scalable and cost-efficient NoSQL solutions. 💡&lt;/p&gt;

&lt;p&gt;Primary Keys&lt;br&gt;
DynamoDB uses partition keys or composite primary keys (partition key + sort key) to uniquely identify records. 🔑&lt;/p&gt;

&lt;p&gt;✅ Partition Key as the Primary Key&lt;br&gt;
If a table has only a partition key, records are retrieved by directly referencing the key value.&lt;/p&gt;

&lt;p&gt;📌 Example: A table storing video games, where the partition key is the game title:&lt;/p&gt;

&lt;p&gt;Press enter or click to view image in full size&lt;/p&gt;

&lt;p&gt;Here, each record is uniquely identified by Game Title, and fetching a record requires providing the exact primary key value. ✨&lt;/p&gt;

&lt;p&gt;✅ Composite Primary Key: Partition Key + Sort Key&lt;br&gt;
For more complex data structures, a table may include both a partition key and a sort key, forming item collections.&lt;/p&gt;

&lt;p&gt;📌 Example: A table where the partition key is Developer, and the sort key is Game Title:&lt;/p&gt;

&lt;p&gt;Press enter or click to view image in full size&lt;/p&gt;

&lt;p&gt;This enables efficient Query operations, which retrieve multiple items from an item collection rather than scanning the entire table. ⚡&lt;/p&gt;

&lt;p&gt;📚 Worth to check:&lt;br&gt;
Core components of Amazon DynamoDB&lt;br&gt;
Learn about the building blocks of DynamoDB your app will need. You'll discover the basics of tables, items…&lt;br&gt;
docs.aws.amazon.com&lt;/p&gt;

&lt;p&gt;📚 Alex Debrie — The DynamoDB Book&lt;/p&gt;

&lt;p&gt;How to Access Data in DynamoDB&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Item-Based Actions (GetItem, PutItem, UpdateItem, DeleteItem)
Work on single records.
Require specifying the full primary key.
Batch Operations (BatchGetItem, BatchWriteItem)
Effectively perform multiple item-based actions.
BatchGetItem supports up to 100 items, while BatchWriteItem supports up to 25 items per operation. 🚀&lt;/li&gt;
&lt;li&gt;Query API Action
Retrieves multiple records within the same partition key = operates on item collection.
Always requires specifying PK.
Faster than Scan because it targets a specific subset of data.&lt;/li&gt;
&lt;li&gt;Scan API Action ⚠️
Reads the entire table, making it slow and expensive.
Should be avoided unless absolutely necessary.
📌 Code Examples: AWS DynamoDB Query &amp;amp; Scan Examples&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Secondary Indexes: Unlocking More Query Power&lt;br&gt;
DynamoDB supports Global Secondary Indexes (GSI) and Local Secondary Indexes (LSI), enabling flexible query patterns beyond the primary key.&lt;/p&gt;

&lt;p&gt;Learn about Medium’s values&lt;br&gt;
✅ Global Secondary Index (GSI)&lt;/p&gt;

&lt;p&gt;Allows querying on non-primary attributes.&lt;br&gt;
Uses a different partition key and optional sort key.&lt;br&gt;
Supports eventual consistency by default.&lt;br&gt;
Requires additional read/write capacity.&lt;br&gt;
Use case: Fetching all orders by CustomerID in an e-commerce app.&lt;br&gt;
✅ Local Secondary Index (LSI)&lt;/p&gt;

&lt;p&gt;Uses the same partition key but a different sort key.&lt;br&gt;
Reads can be either eventually consistent or strongly consistent.&lt;br&gt;
Must be created at table creation.&lt;br&gt;
Shares base table’s read/write capacity.&lt;br&gt;
Use case: Fetching all blog posts by an author, sorted by date.&lt;br&gt;
📌 Key Differences&lt;/p&gt;

&lt;p&gt;--&lt;/p&gt;

&lt;p&gt;DynamoDB Streams: Reacting to Changes in Real-Time&lt;br&gt;
DynamoDB Streams allow you to respond to changes occurring in a DynamoDB table in real time. Every modification in the table is sent to a stream, which can then be filtered and processed further.&lt;/p&gt;

&lt;p&gt;For example, the stream data can be linked to an EventBridge Pipe for event filtering and later on linked with AWS Lambda function to trigger automated actions based on updates.&lt;/p&gt;

&lt;p&gt;Press enter or click to view image in full size&lt;/p&gt;

&lt;p&gt;DynamoDB Streams can be integrated with multiple AWS services, including Lambda, Kinesis, EventBridge, SQS, and SNS, making them a powerful tool for event-driven architectures, logging, and replication.&lt;/p&gt;

&lt;p&gt;Amazon DynamoDB Accelerator (DAX): Supercharge Your Reads&lt;br&gt;
DAX is a caching service designed for DynamoDB, reducing read latency from milliseconds to microseconds. Ideal for applications with high read frequency. ⚡&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Synchronous &amp; Event Driven</title>
      <dc:creator>Ravisankar.ponugoti</dc:creator>
      <pubDate>Tue, 29 Sep 2026 19:13:34 +0000</pubDate>
      <link>https://dev.to/ravisankar_p_4f803a7ee688/synchronous-event-driven-25dg</link>
      <guid>https://dev.to/ravisankar_p_4f803a7ee688/synchronous-event-driven-25dg</guid>
      <description>&lt;p&gt;Synchronous Architecture&lt;/p&gt;

&lt;p&gt;caller -----&amp;gt; api Gateway ------&amp;gt; lambda ------&amp;gt; DynamoDB&lt;/p&gt;

&lt;p&gt;caller call the api  -&amp;gt; api calls this lambda ----&amp;gt; that lambda goes to a database DynamoDB&lt;/p&gt;

&lt;p&gt;in this case , the caller invoke this api and wait for response during the same invocation &lt;br&gt;
this type of architecture is called synchronous architecture.&lt;/p&gt;

&lt;p&gt;example:-&lt;br&gt;
Synchronous flow&lt;/p&gt;

&lt;p&gt;Caller&lt;br&gt;
   |&lt;br&gt;
   | 1. HTTP request&lt;br&gt;
   ↓&lt;br&gt;
API Gateway&lt;br&gt;
   |&lt;br&gt;
   | 2. Synchronously invokes&lt;br&gt;
   ↓&lt;br&gt;
Lambda&lt;br&gt;
   |&lt;br&gt;
   | 3. Reads/Writes&lt;br&gt;
   ↓&lt;br&gt;
DynamoDB&lt;br&gt;
   |&lt;br&gt;
   | 4. Response&lt;br&gt;
   ↑&lt;br&gt;
Lambda&lt;br&gt;
   ↑&lt;br&gt;
API Gateway&lt;br&gt;
   ↑&lt;br&gt;
Caller&lt;/p&gt;
&lt;h1&gt;
  
  
  What happens step by step?
&lt;/h1&gt;

&lt;p&gt;Suppose the caller sends:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight http"&gt;&lt;code&gt;&lt;span class="err"&gt;GET /user/123
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Caller → API Gateway**&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The caller says:&lt;/p&gt;

&lt;p&gt;"Give me the details of user 123."&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;API Gateway → Lambda**&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;API Gateway &lt;strong&gt;invokes Lambda synchronously&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Meaning:&lt;/p&gt;

&lt;p&gt;"Lambda, execute this function and give me the result."&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Lambda → DynamoDB**&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Lambda asks DynamoDB:&lt;/p&gt;

&lt;p&gt;"Give me user 123."&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;DynamoDB → Lambda**&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;DynamoDB returns the data.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Lambda → API Gateway → Caller**&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Lambda returns the result, and API Gateway sends it back to the caller.&lt;br&gt;
 The important part&lt;/p&gt;

&lt;p&gt;Yes, the caller waits for the HTTP response.&lt;/p&gt;

&lt;p&gt;So your statement can be improved to:&lt;/p&gt;

&lt;p&gt;"In a synchronous architecture, the caller sends a request to API Gateway and waits for the response. API Gateway synchronously invokes Lambda. Lambda processes the request, accesses DynamoDB, and returns the result through API Gateway to the caller as part of the same request-response flow."&lt;/p&gt;

</description>
      <category>eventdriven</category>
    </item>
    <item>
      <title>Modernizing public sector applications using serverless and containers</title>
      <dc:creator>Ravisankar.ponugoti</dc:creator>
      <pubDate>Thu, 24 Sep 2026 19:14:45 +0000</pubDate>
      <link>https://dev.to/ravisankar_p_4f803a7ee688/modernizing-public-sector-applications-using-serverless-and-containers-4hmm</link>
      <guid>https://dev.to/ravisankar_p_4f803a7ee688/modernizing-public-sector-applications-using-serverless-and-containers-4hmm</guid>
      <description>&lt;p&gt;100,000 students. One "Enroll" button. 🎓&lt;/p&gt;

&lt;p&gt;Here's how I'd design the backend on AWS using serverless, events, and containers 👇&lt;/p&gt;

&lt;p&gt;1️⃣ The request&lt;/p&gt;

&lt;p&gt;Student → Website → API Gateway → Lambda&lt;/p&gt;

&lt;p&gt;Lambda checks the basics: is the student valid, is the course open, is enrollment allowed? There's no server to keep running 24/7. It runs when a request arrives, and AWS handles scaling and patching.&lt;/p&gt;

&lt;p&gt;2️⃣ The trap&lt;/p&gt;

&lt;p&gt;Once enrollment succeeds, it's tempting to have Lambda call Payment, the student database, email, faculty alerts, and analytics directly. That's tight coupling. If the email service goes down, the whole flow can suffer.&lt;/p&gt;

&lt;p&gt;3️⃣ The fix: publish an event&lt;/p&gt;

&lt;p&gt;Instead of calling everyone, Lambda announces one thing: "StudentEnrolled" 📣&lt;/p&gt;

&lt;p&gt;Lambda is the producer, EventBridge is the broker, and the Payment, Database, and Notification services are the consumers.&lt;/p&gt;

&lt;p&gt;Producer produces → Broker distributes → Consumer consumes.&lt;/p&gt;

&lt;p&gt;Want fraud detection or analytics later? Add a new consumer. The enrollment service doesn't change. That's loose coupling.&lt;/p&gt;

&lt;p&gt;4️⃣ Where containers come in&lt;/p&gt;

&lt;p&gt;Say the Payment service grows into Java, Spring Boot, libraries, and a payment SDK. Package it all into a container, then choose where it runs:&lt;/p&gt;

&lt;p&gt;☸️ EKS if your team already runs Kubernetes&lt;/p&gt;

&lt;p&gt;🚢 ECS if you want AWS-native orchestration with fewer decisions to make&lt;/p&gt;

&lt;p&gt;5️⃣ Where Fargate fits (where many beginners get confused)&lt;/p&gt;

&lt;p&gt;ECS and EKS decide how your containers are orchestrated. Fargate is the serverless compute underneath, so you don't manage, patch, or scale servers.&lt;/p&gt;

&lt;p&gt;My one-line memory hook: Lambda = serverless code, Fargate = serverless containers.&lt;/p&gt;

&lt;p&gt;What would you plug in as the next consumer of the StudentEnrolled event?&lt;/p&gt;

&lt;h1&gt;
  
  
  AWS #Serverless #SystemDesign #EventDrivenArchitecture #Containers
&lt;/h1&gt;

</description>
      <category>serverless</category>
      <category>aws</category>
    </item>
  </channel>
</rss>
