Microservices

Microservice versioning

Why do we need to version our microservices? Microservices are basically APIs. These are consumed by the clients. We should be able to evolve them without any impact to the clients. We should not force the clients to use the new changes in services and more importantly this should not break the clients. There must… Continue reading Microservice versioning

Microservices

Securing microservices

Microservices are hard. Complexity is high. Securing microservices is even harder and even more complex. Where do we start? The first words that come to my mind are authentication and authorization. Firewall. Trust. Session. Tokens. We need to secure our applications and we need to secure our containers. Securing applications We can build a SSO… Continue reading Securing microservices

Microservices

Log tracing with Sleuth and Zipkin

In a microservice environment it's hard to trace errors and logs, as we have lots of moving components. We could go into each service and read the logs, then aggregate them and finally with lots of patience try to understand what is happening. But we should not do this, we have alternatives. One of them… Continue reading Log tracing with Sleuth and Zipkin

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

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