Here you will find a list of very common words on Microservices, Event Sourcing, Domain-Driven Design or Hexagonal Architecture.
An aggregate is an object that have a root entity and one or more transactional related entities or value objects. All the actions against the internal objects must pass through the aggregate.
Asynchronous, in terms of software, refers to an action requested to the system that will be done in an undetermined time. Usually, the requester don't wait for the action to be done.
A bounded context represents a subset of a domain where a particular domain model applies. It affects the meaning of different concepts. For example, User can be a different thing in an auth bounded context than in a marketing bounded context.
A circuit breaker is a defensive system that allows a fallback in the situation where a direct call to an endpoint -to another microservice or to an external server- is failing too often.
A correlation id is an identifier shared by different steps of the same process. Is very used to related different logs of the same execution -specially for distributed tasks.
Domain-Driven Design (DDD)
Domain-Driven Design states that de design of a system should be driven by the domain. This implies having domain experts and using ubiquitous language inside the organization. More information [here](/articles/ddd-domain-driven-design).
A domain event represent a fact that affected an aggregate. Conceptually speaking, every change in an aggregate is caused by a domain event happening to this aggregate. In event sourcing, domain events are used to reconstitute any state of an aggregate.
An entity is an object representing something that is mutable -can change overtime- and identifiable from other objects of the same type by an identifier field -or combination of fields.
A fallback, in computer science, is a plan B, a system than guarantees the main system will not stop working. It can be used in many ways. A backup is a fallback because it restores lost data so the system can continue working. A circuit breaker is a fallback as it continue processing requests when the main system fails.
A set of code to ensure some business conditions are met. It uses to be a method called before the execution of the code which is changing the domain, and throws an exception when the conditions fail.
Also known as ports and adapters, hexagonal architecture tries to reduce coupling with the use of layers that are connected through adapters. Usually, there are three: domain, application and infrastructure. More information [here](/articles/hexagonal-architecture).
Interface Segregation Principle
Interface segregation principle states that no class should be forced to implement unneeded methods. To avoid this, we should separate methods in different interfaces so each class can implement only the needed methods.
A microservice is a service that should be little enough, and that is part of a microservices architecture. You can find more in the microservices category.
SOLID is an acronym for Single responsibility, Open-Closed, Liskov substitution, Interface segregation and Dependency inversion principles.
Synchronous, in terms of software, refers to an action requested to the system that will be done immediately. Usually, the requester will wait for the action to be done.
Ubiquitous language is a concept from DDD to define how all the members of an organization should you the same words for the same concepts, that is, a language that is everywhere.
A value object is an object representing something that is immutable -cannot change overtime- and not identifiable from other objects except for the values of all its fields.
Not another newsletter
- A montly summary of everything new in the blog: So you can consume the content at your own pace.
- Discounts on my books or courses: You will have exclusive discounts on books, courses or any other pay material I build in the future.
- Books recommendations: I will recommend you books time to time, only the best of the best.
Join to get more like this
Only one email per month, period. Unsubscribe any time.