-
Differences between a reverse proxy, a load balancer, and an API gateway.
Feature Reverse Proxy Load Balancer API Gateway Main purpose A hotel’s concierge handles guest requests. Distributes incoming network traffic across multiple servers. Provides a single entry point for API requests to microservices. Core task Routes requests to the appropriate backend. Distributes traffic to prevent server overload. Manages requests and responses between a client and microservices.…
-
Service-Oriented Architecture (SOA) v/s Microservices Architecture
The difference between Service-Oriented Architecture (SOA) and Microservices Architecture lies mainly in granularity, design philosophy, technology stack, and deployment strategy. 🔑 High-Level Summary: Feature SOA (Service-Oriented Architecture) Microservices Architecture Granularity Coarse-grained (larger services) Fine-grained (smaller, focused services) Communication Often uses Enterprise Service Bus (ESB) Lightweight protocols like HTTP/REST, gRPC Technology Stack Tends to be more…
-
🔍GraphQL – In-Depth Study Sheet
🧠 What is GraphQL? GraphQL is a query language for APIs and a runtime for executing those queries by using a type system you define for your data. 🏗️ How It Works Returns a nested JSON response with just the requested fields. ✅ Advantages of GraphQL Benefit Explanation 🧩 Client-defined Queries Clients specify the exact…
-
Software Design Principles and Architectural Strategies
1. DRY (Don’t Repeat Yourself) 2. KISS (Keep It Simple, Stupid) 3. YAGNI (You Aren’t Gonna Need It) 4. SoC (Separation of Concerns) 5. SOLID Principles 6. Dependency Rule 7. Scaling 📈 🔹 Vertical Scaling (Scale-Up) Definition: Increase resources (CPU, RAM, Disk) on a single server. 🔹 Horizontal Scaling (Scale-Out) Definition: Add more machines to…
-
Different types of Software Architecture Patterns Overview
1. Monolithic 2. N-Layer / N-Tier 3. Clean Architecture 4. Modular Monolithic 5. Headless Architecture 6. Microservices Comparison Table Architecture Description Advantages Disadvantages Use Cases Monolithic Single unified application with tightly coupled components. Simple to develop and deploy. Hard to scale, tightly coupled, difficult to maintain. Small applications or early-stage products. N-Layer / N-Tier Logical…
-
Common Information Model (CIM) Engine
-
Spring Boot Annotations
@SpringBootApplication @SpringBootApplication is an annotation in the Spring Framework for Java that indicates that a class is a Spring Boot application. This annotation combines several other annotations, including @Configuration, @EnableAutoConfiguration, and @ComponentScan, into a single convenient annotation. The @Configuration annotation indicates that the class is a source of bean definitions for the application context. The…
-
Deserializing JSON to an abstract class, interface, or to inherited objects in Spring Boot Webclient
@JsonTypeInfo and @JsonSubTypes annotations. First, you need to ensure that your classes are properly annotated for serialization and deserialization. You can use the @JsonTypeInfo and @JsonSubTypes annotations to specify the type hierarchy of your objects @JsonSubTypes with not matching any conditions and return as null If you have a JSON object that does not match…
-
Deserialize case-insensitive JSON in Spring Boot Webclient
If you want to deserialize case-insensitive JSON in Spring Boot using Jackson, you can configure the ObjectMapper to use the ACCEPT_CASE_INSENSITIVE_PROPERTIES feature. JSON Java Pojo WebClient Example 1 WebClient Example 2
-
Hazelcast, Ignite, Aerospike, Redis Cache Comparison
Hazelcast Ignite Aerospike Redis In-memory key-value store Primary database model – Key-value store Secondary database models – Document store Java Language For open source Apache License 2.0 In-memory computing platform Distributed database Java Language, Java, C#, C++, SQL For open source Apache License 2.0 In-memory NoSQL Database Primary database model – Key-value store Secondary database…