Some Technical Terms…
I wanted to share the notes I’ve taken for myself here. Back in my university days, my notes were so popular that they were sold at photocopy shops! 😊 Now, I’m continuing this tradition by compiling my notes on technical terms in the software world.
Why did I choose these terms?
These are words I often come across while reading blogs but tend to forget over time. To prevent this and make my learning permanent, I developed the habit of taking notes. I hope these notes serve as a useful guide for others as well!
Webhook
You can think of a webhook as a reverse API. When you subscribe to an application, a webhook allows you to trigger an action when an event occurs in that application. It’s used to integrate different applications by delivering events happening within an application to other subscribed applications via HTTP with JSON payloads.
Big Bang Migration
Transforming a monolithic application into a microservices architecture using the Big Bang approach — deploying everything at once — can be costly. This high-risk approach should be considered carefully, especially for large projects.
Strangler Pattern
A safer method for transitioning to microservices, the Strangler Pattern allows you to incrementally split a monolithic architecture into microservices. In this approach, the old system is gradually reduced while the new system is implemented step by step, avoiding major disruptions and risks.
Transaction Outbox
This is a pattern used to ensure data consistency in distributed systems. The Transaction Outbox pattern enables reliable message delivery to another system within the same transaction context once the transaction is complete.
Polling Publisher
As part of the Outbox pattern, the Polling Publisher refers to the component that fetches messages from the outbox table and sends them to the message queue. This component periodically scans the outbox table for unprocessed messages.
Transaction Log Tailing
This technique captures data changes in real-time by monitoring database transaction logs and delivers these changes to other systems. It’s an effective method for data integration and real-time analytics.
Transient
The term “transient” has different meanings in two contexts:
- Java’s
transient
: Specifies that a field should not be serialized. - JPA’s
@Transient
: Indicates that a field should not be stored in the database. While the contexts differ, both convey the idea of temporary data.
Consumer-Driven Contract (CDC)
Consumer-Driven Contract (CDC) is a method for testing the compatibility of services based on the requirements defined by consumers. The “contract” here refers to an agreement between the consumer and provider regarding the data exchange format. CDC tests are conducted by both the consumer and provider to ensure that this contract is consistently upheld.
A popular tool for CDC testing is PACT, an open-source framework that facilitates consumer-driven testing and ensures system compatibility.
@DirtiesContext
This is an annotation used in Spring Framework tests. If the test context is “dirtied,” this annotation ensures that the Spring test container is restarted after the test. It’s useful when a clean context is required to prevent interference between tests.
I’ll keep adding new terms here as I encounter them…
That’s all for now. 😊