microservices

Immutability is Fundamental

March 10, 2021
reactive, microservices, design

Immutability # Immutability is fundamental to efficient data processing, encountered at the design and implementation levels. Let’s explore these scenarios individually. Design # Point-to-point microservices share data through endpoint calls, CQRS and event-sourcing are popular designs that use data immutability as a core principle. In these types of systems, resilience is achieved through the processing of queued messages using worker instances. The data is only inserted through the command, and the response is created from one-to-many inserted records. ...

Functional Programming

reactive, microservices, design

Functional Programming # An Old Paradigm for Modern Applications # Functional programming (FP) is a relatively old concept that traces back to the 1958 Lisp. From the Microservice’s Angle, FP is relevant because it enforces immutability when handling asynchronous events, allowing for parallelization of processes without memory corruption. Most modern languages now embrace FP concepts. Object-Oriented languages such as Java support lambdas functions to improve state manipulation and multithread programming. ...

Good Old Object-Orientation

reactive, microservices, design

Most languages provide support to create Object-Oriented (OO) systems. Why correct OO design is essential: Code re-use Multithreading Easy to maintain code Easy to understand code Below are a few steps to check if you are applying proper object orientation At Object level # The most important feature of a good design is SRP (Single Responsibility Principle). When designing your Object you can verify if it attends SRP by asking, “How many responsibilities this object has? ...

Reactive and Functional Coding

reactive, microservices, design

Reactive and Functional Coding # Reactive systems are measured in terms of resilience, responsiveness, elasticity, and message-driven as in the Reactive Manifesto. Many frameworks are available to help developers implement reactive systems; between all of these frameworks, we are interested in the technologies that enable the construction of reactive systems through Functional-Reactice-Programming (FRP) abstractions, particularly ReactiveX and Reactor. The core of FRP is the Observable pattern described by the Object-Oriented paradigm (GoF Design Patterns). ...