Skip to main content

70 docs tagged with "technical-knowledge"

View all tags

Banking & Payments Glossary

A comprehensive A–Z reference of terms used in banking and payments. Essential reading for anyone joining the industry.

Banking Roles & Teams

A bank is made up of many specialised teams. Understanding who does what helps you collaborate effectively, know who to escalate to, and understand where you.

Cards & Card Schemes

**Payment cards** (debit and credit) are one of the most widely used payment methods globally. They operate on **card schemes** — networks that define rules.

Conflict Resolution

A conflict occurs when two branches have made **different changes to the same line(s)** of the same file, and Git cannot automatically determine which version.

Consumer Groups

A **consumer group** is a set of consumers that collectively consume a topic's partitions. Each partition is assigned to exactly one consumer within the group.

Consumer Lag

Consumer Lag measures how far behind a consumer group is from the latest messages in a topic. It is the most critical health metric for any Kafka-based application.

Core Banking System (CBS)

The **Core Banking System (CBS)** is the central software platform that manages a bank's **primary banking operations** — account management, transaction.

Dependency Inversion Principle

Don't let your important business logic classes depend directly on concrete implementations (like a specific database driver, a specific email provider, etc.).

git add — Staging Changes

`git add` moves changes from your **working tree** into the **index** (also called the staging area). Think of the index as a draft of your next commit — you.

git commit — Recording Changes

`git commit` takes everything in the **index (staging area)** and creates a permanent, immutable snapshot in the repository. Each commit has:

Git Hooks — Automating Quality Checks

**Git hooks** are scripts that Git automatically executes before or after specific events (commit, push, merge, etc.). They live in `.git/hooks/` and can be.

Git Knowledge Base

**Git** is a distributed version control system (VCS) created by Linus Torvalds in 2005. Every developer has a full copy of the repository — including its.

git merge — Combining Branches

`git merge` integrates the history of one branch into another. It finds the **common ancestor** of the two branches and combines their changes, creating a new.

git push — Uploading to a Remote

`git push` uploads your local commits to a remote repository, making them available to other team members. It transfers only the objects (commits, trees.

git rebase — Replaying Commits

`git rebase` moves or replays a sequence of commits onto a new base. It rewrites commit history by creating **new commits** with the same changes but different.

git reflog — The Safety Net

The **reflog** (reference log) is a local journal of every place `HEAD` and your branch pointers have pointed to, in chronological order. Every time you.

git squash — Combining Commits

**Squashing** combines multiple commits into a single commit. This is used to clean up a messy feature branch before merging — turning a series of `wip`, `fix.

git stash — Shelving Work in Progress

`git stash` temporarily shelves (stashes) your uncommitted changes — both staged and unstaged — so you can switch context without committing half-finished.

git tag — Marking Releases

A **tag** is an immutable pointer to a specific commit — unlike a branch, it never moves. Tags are used to mark release points (`v1.2.0`), milestones, or any.

Hash Key Partitions

Kafka uses a hash of the message key to determine partition assignment. Understanding this mechanism is essential for ordering guarantees, avoiding hot partitions, and designing correct partition keys.

Interest & Fees

Interest and fees are the primary ways banks **generate revenue** from accounts and products. Understanding how they work is important for product.

Interface Segregation Principle

Keep your interfaces **small and focused**. Don't create a "fat" interface that bundles unrelated methods together, forcing classes to implement things they.

Introduction to SOLID Principles

Welcome! This guide will walk you through the **SOLID principles** — five essential design principles that help you write Java code that is **clean, scalable.

Kafka Connect

**Kafka Connect** is a framework for **reliably moving data between Kafka and external systems** (databases, file systems, cloud services) without writing.

Kafka Consumer

A **consumer** reads messages from Kafka topics. Unlike traditional queues (push-based), Kafka consumers **pull** messages at their own pace. This gives.

Kafka Knowledge Base

Apache Kafka is a **distributed event streaming platform** designed for high-throughput, fault-tolerant, and scalable real-time data pipelines and streaming.

Kafka Producer

A **producer** is a client application that publishes (writes) messages to Kafka topics. It is responsible for:

Kafka Topics

A **topic** is a named, durable stream of messages in Kafka. Think of it as a logical category or feed where producers write and consumers read.

Liskov Substitution Principle

If class `B` extends class `A`, then anywhere you use `A`, you should be able to swap in `B` without anything breaking.

Message Ordering with Partition Keys

Kafka guarantees **total ordering within a partition**. Messages written to the same partition are always consumed in the exact order they were produced.

Open/Closed Principle

Your class should be: - **Open for extension** → You can add new behavior - **Closed for modification** → You don't change existing, working code

pacs.004 — Payment Return

`pacs.004` is the **interbank payment return message**. It is sent by the **Creditor Bank back to the Debtor Bank** when a previously received `pacs.008`.

Partitions

A **partition** is an ordered, immutable sequence of records (a log) within a topic. Each partition lives on exactly one broker at a time (as leader) and.

Processing and Ordering

Kafka guarantees ordering within a partition, but single-threaded processing limits throughput. This guide covers four patterns for achieving high throughput while preserving per-key ordering.

Producer Acknowledgements (acks)

The `acks` configuration controls **how many broker acknowledgements the producer requires before considering a send successful**. It directly trades off.

Scaling Partitions

Partitions are the unit of parallelism in Kafka. Scaling them is critical for throughput but can break ordering for keyed topics. This guide covers the mechanics, risks, and migration strategies.

Schema Registry

**Schema Registry** is a centralized repository for managing and validating schemas for Kafka messages. It ensures that producers and consumers agree on the.

Single Responsibility Principle

Every class should do **exactly one thing** and do it well. If a class is handling multiple unrelated responsibilities, then it has multiple reasons to change.

Summary & Cheat Sheet

Congratulations! You've learned all 5 SOLID principles. Here's everything at a glance.

Testing in Banking & Payments

Testing in banking is **high-stakes** — a defect in a payment system can result in customer funds lost, duplicate payments, regulatory breaches, or system.

Understanding bootstrap.yml in Spring Boot

A comprehensive guide to bootstrap.yml in Spring Boot — covering the bootstrap context lifecycle, configuration server integration, spring.config.import evolution in Spring Boot 2.4+, and senior deep dives on pitfalls.