<?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: Threshika Vijayakumar</title>
    <description>The latest articles on DEV Community by Threshika Vijayakumar (@threshika_vijayakumar_bb9).</description>
    <link>https://dev.to/threshika_vijayakumar_bb9</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3567341%2Fdf5261ab-7492-494d-a822-f9d8e7738f91.png</url>
      <title>DEV Community: Threshika Vijayakumar</title>
      <link>https://dev.to/threshika_vijayakumar_bb9</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/threshika_vijayakumar_bb9"/>
    <language>en</language>
    <item>
      <title>Keycloak: The Open-Source Hero Behind Secure Logins</title>
      <dc:creator>Threshika Vijayakumar</dc:creator>
      <pubDate>Sun, 26 Oct 2025 16:11:40 +0000</pubDate>
      <link>https://dev.to/threshika_vijayakumar_bb9/keycloak-the-open-source-hero-behind-secure-logins-43n5</link>
      <guid>https://dev.to/threshika_vijayakumar_bb9/keycloak-the-open-source-hero-behind-secure-logins-43n5</guid>
      <description>&lt;p&gt;Every time you click “Login with Google” or “Sign in with GitHub,” a complex dance happens in the background: tokens are exchanged, your identity is verified, and permissions are granted, all in a matter of seconds.&lt;/p&gt;

&lt;p&gt;While many developers rely on cloud services like AWS Cognito or Firebase Authentication, there’s a powerful open-source alternative that gives you full control over authentication and user management: &lt;em&gt;Keycloak&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is Keycloak?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Keycloak is an open-source Identity and Access Management (IAM) solution developed by Red Hat.&lt;br&gt;
It helps developers add authentication, authorization, and single sign-on (SSO) to their applications without writing security code from scratch.&lt;/p&gt;

&lt;p&gt;In simple terms:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Keycloak helps you manage who can access your application, how they log in, and what permissions they have.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Why Keycloak When There Are So Many Cloud Options?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You might wonder why not use AWS Cognito, Firebase Auth, or Azure AD instead?&lt;/p&gt;

&lt;p&gt;Here’s what makes Keycloak special:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Open Source&lt;/li&gt;
&lt;li&gt;Self-hosted&lt;/li&gt;
&lt;li&gt;Easy Integration&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Keycloak in a Nutshell&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Realm – Your own isolated space managing users, roles, and clients. (You can have multiple realms like dev, test, prod.)&lt;/p&gt;

&lt;p&gt;User – Represents a person or service that can log in. Can be created manually, registered, or linked via external IdPs.&lt;/p&gt;

&lt;p&gt;Client – Any app using Keycloak for login (e.g., frontend, backend). Defines redirect URIs, access type, and permissions.&lt;/p&gt;

&lt;p&gt;Identity Provider (IdP) – External service verifying user identity (e.g., Google, GitHub, Azure AD, AWS Cognito, GCP). Keycloak connects them all in one place.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hands-On: Run Keycloak Using Docker&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Step 1: Pull the Keycloak Image&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker pull quay.io/keycloak/keycloak:latest
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Step 2: Run Keycloak in Development Mode&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker run -d \
  --name keycloak \
  -p 8080:8080 \
  -e KEYCLOAK_ADMIN=admin \
  -e KEYCLOAK_ADMIN_PASSWORD=admin \
  quay.io/keycloak/keycloak:latest start-dev

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Step 3: Log in to the Admin Console&lt;/p&gt;

&lt;p&gt;Go to:&lt;br&gt;
&lt;code&gt;http://localhost:8080&lt;/code&gt;&lt;br&gt;
Login using:&lt;br&gt;
Username: admin&lt;br&gt;
Password: admin&lt;/p&gt;

&lt;p&gt;You’ll see the Keycloak dashboard with options to manage realms, users, and clients.&lt;/p&gt;

&lt;p&gt;Step 4: Create a Realm&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Click on the top-left dropdown → Create Realm&lt;br&gt;
Name it (e.g., myapp-realm)&lt;br&gt;
Save&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Step 5: Add a Client&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Go to Clients → Create Client&lt;br&gt;
Name: react-app&lt;br&gt;
Root URL: &lt;a href="http://localhost:3000" rel="noopener noreferrer"&gt;http://localhost:3000&lt;/a&gt; (your app’s URL)&lt;br&gt;
Save and configure redirect URIs&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Step 6: Add a User&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Go to Users → Add User&lt;br&gt;
Set username (e.g., john)&lt;br&gt;
Go to Credentials tab → Set password&lt;br&gt;
Enable Temporary Password = OFF&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;My Experience Working with Keycloak&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Recently, I came across Keycloak while exploring secure authentication. I started experimenting with it, and soon I was able to integrate the latest Keycloak Quarkus version (previously, it was based on WildFly). The new Quarkus-based version felt significantly lighter, started faster, and was easier to configure, which made the entire setup experience smoother.&lt;/p&gt;

&lt;p&gt;However, it wasn’t without challenges. One of the main issues I faced was with webhook-like event integrations, which weren’t available directly through the UI. I had to configure them manually using Keycloak’s event listener mechanism. Since Keycloak is open-source and fully extensible, I could add custom logic and workarounds, but it took some digging through the documentation to get it right.&lt;/p&gt;

&lt;p&gt;Another challenge was handling redirect URIs and token configurations for clients. A small mismatch in redirect URLs or access type (public vs. confidential) can cause authentication loops or token errors. Understanding how Keycloak issues tokens and how the client consumes them took some trial and error, but once it clicked, the flow made perfect sense.&lt;/p&gt;

&lt;p&gt;Despite these hurdles, the experience was amazing. Once the integration was complete, authentication and user management became seamless. It felt rewarding to see how flexible and powerful Keycloak can be when you really understand its structure and flow.&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.amazonaws.com%2Fuploads%2Farticles%2Fq7hli7hj7s2tydm38onh.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.amazonaws.com%2Fuploads%2Farticles%2Fq7hli7hj7s2tydm38onh.png" alt=" " width="535" height="467"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When you finally get Keycloak working after the setup struggle 😎&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Final Thoughts&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Authentication is a complex but critical part of every application.&lt;br&gt;
Instead of building your own login system and handling tokens manually, Keycloak provides a ready-to-use, secure, and flexible identity management solution.&lt;/p&gt;

&lt;p&gt;Whether you’re securing a single web app or managing microservices in the cloud, Keycloak simplifies identity so you can focus on building your core product.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Start your Keycloak journey today because secure login doesn’t have to be hard.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>keycloak</category>
      <category>webdev</category>
      <category>programming</category>
      <category>security</category>
    </item>
    <item>
      <title>Redis Explained: The Secret Ingredient Behind Fast Apps &amp; Smooth DevOps</title>
      <dc:creator>Threshika Vijayakumar</dc:creator>
      <pubDate>Wed, 15 Oct 2025 18:18:49 +0000</pubDate>
      <link>https://dev.to/threshika_vijayakumar_bb9/redis-explained-the-secret-ingredient-behind-fast-apps-smooth-devops-1p9n</link>
      <guid>https://dev.to/threshika_vijayakumar_bb9/redis-explained-the-secret-ingredient-behind-fast-apps-smooth-devops-1p9n</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Have you ever wondered how apps like Instagram, Netflix, or GitHub handle millions of users without breaking a sweat?&lt;br&gt;
How do they make things load instantly, even when thousands of people are online at the same time?&lt;/p&gt;

&lt;p&gt;The secret sauce is often something hidden behind the scenes, a little hero called &lt;em&gt;&lt;strong&gt;Redis&lt;/strong&gt;&lt;/em&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;What Exactly is Redis?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Redis stands for &lt;em&gt;Remote Dictionary Server&lt;/em&gt;, but don’t let the name scare you.&lt;br&gt;
Think of Redis as a super-speedy notepad that your app can use to remember things temporarily (or even permanently, if you want).&lt;/p&gt;

&lt;p&gt;It’s an open-source, &lt;strong&gt;in-memory data store&lt;/strong&gt;, which means it keeps your data in RAM instead of a hard drive. And since RAM is way faster than disk, Redis can respond in microseconds, which is why it’s so popular.&lt;/p&gt;

&lt;p&gt;It can act as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A database (for storing data)&lt;/li&gt;
&lt;li&gt;A cache (for speeding up responses)&lt;/li&gt;
&lt;li&gt;A message broker (for managing queues &amp;amp; communication)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;How Redis Works?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Redis stores data in the form of key-value pairs like a &lt;strong&gt;dictionary in Python&lt;/strong&gt;, a &lt;strong&gt;Map in JavaScript&lt;/strong&gt;, or a &lt;strong&gt;HashMap in Java&lt;/strong&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Key: "user:101"
Value: "{name: 'Threshika', age: 22, country: 'India'}"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can set, get, update, or delete values using simple commands:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SET user:101 "Threshika"
GET user:101
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Setting Up Redis Using Docker&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Now that you know what Redis is, let’s actually run it!&lt;br&gt;&lt;br&gt;
The easiest way to get started is by using &lt;strong&gt;Docker&lt;/strong&gt; no installation headaches, just pull and run.&lt;/p&gt;

&lt;p&gt;If you have Docker installed, open your terminal and run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker pull redis/redis-stack
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This pulls the Redis Stack image, which includes Redis plus extra features like RedisInsight (a UI tool) and modules for JSON, Search, and Graph.&lt;/p&gt;

&lt;p&gt;Once pulled, start the container with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker run -d --name redis-stack -p 6379:6379 -p 8001:8001 redis/redis-stack
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Port 6379 → Redis server&lt;/li&gt;
&lt;li&gt;Port 8001 → RedisInsight dashboard (&lt;a href="http://localhost:8001" rel="noopener noreferrer"&gt;http://localhost:8001&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now Redis is up and running inside Docker!&lt;br&gt;
You can connect to it using any Redis client or CLI:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;redis-cli
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Redis in Development: The Developer’s Superpower&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Redis isn’t just about speed; it helps developers build smarter and more efficient apps.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Caching for Instant Responses&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Your backend can cache database queries or API results in Redis, so users don’t have to wait every time.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Example:&lt;/em&gt;&lt;br&gt;
If a user opens your profile page 10 times, your app fetches it from Redis instead of reloading everything from the database again and again.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Session Storage&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Web apps use Redis to store user sessions, those tiny pieces of data that remember you’re logged in.&lt;br&gt;
If you’ve ever been logged into a website even after closing your browser, there’s a good chance Redis was behind it.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Real-Time Applications&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Redis has a Pub/Sub (Publish/Subscribe) feature that makes it ideal for chat apps, live notifications, or multiplayer games, allowing updates to be sent to users instantly.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Queues and Background Jobs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Redis Lists and Streams are great for managing background tasks like sending emails or processing payments asynchronously.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Redis in DevOps: The Backbone of Speed and Reliability&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Developers use Redis in their code, but DevOps engineers rely on it to make entire systems faster and more reliable.&lt;/p&gt;

&lt;p&gt;Here’s how,&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Shared Caching Layer Across Microservices&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In large systems, Redis acts as a central cache, helping multiple microservices share data efficiently.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Message Broker for Smooth Communication&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Redis Streams enable services to communicate with each other. One service sends a message, another receives it, and processes it. This is how scalable systems handle background work seamlessly. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;CI/CD Optimization&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In DevOps pipelines, Redis stores temporary build data, job states, and cache dependencies to speed up deployment times.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Scalable Infrastructure&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Redis runs beautifully inside Docker, Kubernetes, or cloud platforms like AWS, Azure, and Google Cloud. It can even be clustered for high availability, with no single point of failure.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Wrapping Up: Why Redis is Worth Learning&lt;/strong&gt;&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.amazonaws.com%2Fuploads%2Farticles%2Ff3rugovplzju0idtpdy9.jpg" 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.amazonaws.com%2Fuploads%2Farticles%2Ff3rugovplzju0idtpdy9.jpg" alt=" " width="512" height="384"&gt;&lt;/a&gt;&lt;br&gt;
Redis is more than just a tool; it’s a mindset of speed, simplicity, and scalability.&lt;br&gt;
Whether you’re building a small side project or managing a large-scale distributed system, Redis fits right in.&lt;/p&gt;

&lt;p&gt;Once you start using Redis, you’ll realize how much time and effort it saves and how much faster your apps feel.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Final Thought&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Redis isn’t just for developers or DevOps; it’s for anyone who loves building things that feel instant.&lt;br&gt;
Learn it once, and you’ll find yourself using it everywhere.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>devops</category>
      <category>database</category>
      <category>performance</category>
    </item>
  </channel>
</rss>
