Microservices

Hystrix

Microservices should respect the CAP theorem. That means when a failure occurs, you should choose between consistency and availability, and availability is the best choice. Hystrix has the role to keep the availability high when a partition occurs, by stopping cascading failures and providing fallback. These partitions should not be visible to the end user,… Continue reading Hystrix

Advertisements
Microservices

Eureka and Feign

Eureka Eureka is a REST (Representational State Transfer) based service used for locating services for the purpose of load balancing and failover of middle-tier servers. We have eureka client and server. The server holds the information regarding the service instances, while the client interacts with the server and act as a round robin load balancer.… Continue reading Eureka and Feign

Microservices

Debezium – Transaction log miner

In the previous post the services used eventuate to communicate. But how did it know to create events? How does the CDC module work? Well behind the scenes it is mining the transaction logs and create events from it. Enter Debezium. It's build on top of Kafka and records the changes made to the database in… Continue reading Debezium – Transaction log miner

Microservices

Eventuate

Eventuate is a framework that makes event-driven microservices easy. It simplifies a lot our work, as it has change data capture(CDC), message broker(Kafka) and a event store (Eventuate). For more information regarding eventuate you can start with this.  Now let's apply this on our known use case(items and bids). First of all, a picture will… Continue reading Eventuate

Microservices

Communication between microservices

There are different strategies here, depending of situation. The most common style of communication is Remote Procedure Invocation (RPI). This includes REST calls, gRPC or thrift.  It can be used only when one service calls another. This is known also as request/response. These are synchronous, the response must come in a timely fashion in order to… Continue reading Communication between microservices

Microservices

Service discovery

The purpose of service discovery is like the name states to make the microservices discoverable. Their network locations should be dynamically assigned, as they could fail, become unresponsive and another instance should be there to perform the required work. These microservices should be highly-available.(CAP theorem). We need a service registry where the services should be… Continue reading Service discovery