Skip to main content

Posts

Monitoring Spring WebFlux Microservices with New Relic

 In this guide, we’ll go over how to monitor a reactive Spring Boot application using WebFlux, with New Relic’s @Trace annotation for detailed transaction tracking, custom parameters, and distributed tracing for complex service chains. Prerequisites A Spring Boot WebFlux application. The New Relic Java agent configured in your application. Enable distributed tracing in newrelic.yml : distributed_tracing:   enabled: true Step 1: Instrument the Main Endpoint Our main entry point is the processRequest endpoint, which handles validation, external API calls, and data processing. Here’s how we add @Trace with dispatcher = true to make it a main transaction. @RestController public class SampleController {     private static final Logger logger = LoggerFactory.getLogger(SampleController.class);     private final SampleService sampleService;     private final WebClient webClient;     public SampleController(SampleService sampleService, WebClient.Builder webClientBuilder) {         this.sampleS

How Encryption Happens Between Client and Server: A Step-by-Step Guide

In the modern web, securing the communication between a client (like a browser) and a server is crucial. Every time you visit a website with "HTTPS" in the URL, encryption is happening behind the scenes. But how does this encryption process actually work? In this blog, we'll break down the encryption process step by step, focusing on the TLS/SSL handshake , which is the protocol used to establish a secure connection. We'll also include a flow diagram to make it easier to understand! What is TLS/SSL? Transport Layer Security (TLS) and its predecessor Secure Sockets Layer (SSL) are protocols that provide encryption between a client and a server. They ensure that any data transmitted between the two parties remains confidential and cannot be intercepted or tampered with by third parties. Here’s how the process works: Step-by-Step: How Encryption Happens Between Client and Server 1. Client Hello The encryption process begins when the client (typically a web browser) wa

Understanding the Advertisement Domain: A Comprehensive Overview Part 2

 The advertisement domain is a complex and dynamic ecosystem that involves various technologies and platforms working together to deliver ads to users in a targeted and efficient manner. The primary goal is to connect advertisers with their target audience, increasing brand visibility, user engagement, and revenue generation. In this blog, we will delve into the different components of the advertisement ecosystem, key concepts like programmatic advertising and real-time bidding (RTB), and provide a practical example to illustrate how it all works. Key Components of the Advertisement Domain The advertisement domain broadly consists of the following components: Advertisers : These are brands or companies that want to promote their products or services through advertisements. They set up ad campaigns targeting specific user segments. Publishers : These are websites, mobile apps, or digital platforms that display ads to users. Publishers monetize their content by selling ad space to advert

Understanding Sponsored Ads vs. Normal Ads: A Comprehensive Guide

In the world of digital advertising, understanding the different types of ads and how they work is crucial for optimizing your marketing strategies. This blog will delve into the workflows of sponsored ads and normal ads, highlighting their key differences, and providing detailed examples to help you grasp their functionalities. What Are Sponsored Ads? Sponsored ads are paid advertisements that blend seamlessly into the content stream of a platform. They are designed to look and feel like native content, making them less intrusive and more engaging. Sponsored ads are commonly found on social media platforms, search engines, and content recommendation sites. Workflow of Sponsored Ads Ad Creation : Content : Create a compelling ad that matches the platform’s native format. For example, a sponsored post on Instagram might feature a high-quality image or video with a catchy caption and a call-to-action (CTA) like "Shop Now." Targeting : Select your target audience based on demogr

Understanding the Difference Between Statement and PreparedStatement in Java JDBC

 When working with databases in Java, the choice between Statement and PreparedStatement can significantly impact performance, security, and overall application efficiency. While both are used to execute SQL queries, understanding when and how to use each can help you write more optimized and secure Java code. In this blog, we will dive deep into the differences between Statement and PreparedStatement in Java, why PreparedStatement is often preferred, and what impact it has on performance, especially for static SQL queries. 1. Overview of Statement and PreparedStatement Both Statement and PreparedStatement are interfaces provided by the java.sql package and are used to execute SQL commands in a relational database. However, their usage patterns and underlying mechanisms differ significantly. Statement : A Statement is used to execute simple, static SQL queries. Each time a query is executed using Statement , it is sent to the database, where it is parsed, compiled, optimized,

Hackrank test sample api consumption java code sample

import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import java.util.*; import java.util.regex.Matcher; import java.util.regex.Pattern; public class TransactionFetcher {     public static List<double[]> getTransaction(int locationId, String txnType) {         int page = 1;         List<double[]> transactions = new ArrayList<>();         while (true) {             try {                 String urlString = "https://jsonmock.hackerrank.com/api/transactions/search?" +                         "txnType=" + txnType + "&page=" + page;                 URL url = new URL(urlString);                 HttpURLConnection connection = (HttpURLConnection) url.openConnection();                 connection.setRequestMethod("GET");                 BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));                 String inputLine;        

Learning How to Map One-to-Many Relationships in JPA Spring Boot with PostgreSQL

  Introduction In this blog post, we explore how to effectively map one-to-many relationships using Spring Boot and PostgreSQL. This relationship type is common in database design, where one entity (e.g., a post) can have multiple related entities (e.g., comments). We'll dive into the implementation details with code snippets and provide insights into best practices. Understanding One-to-Many Relationships A one-to-many relationship signifies that one entity instance can be associated with multiple instances of another entity. In our case: Post Entity : Represents a blog post with fields such as id , title , content , and a collection of comments . Comment Entity : Represents comments on posts, including fields like id , content , and a reference to the post it belongs to. Mapping with Spring Boot and PostgreSQL Let's examine how we define and manage this relationship in our Spring Boot application: Post Entity  @Entity @Getter @Setter @Builder @AllArgsConstructor @NoArgsCons