Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Modernization of legacy systems with microservices, Hystrix and RxJava

Holger Kraus
November 08, 2015

Modernization of legacy systems with microservices, Hystrix and RxJava

Presented at Javadays Kiev, November 4, 2015

As a software developer you are not very often in the situation where you develop a completely new system from scratch based on recent techonologies. More often just small features have to be integrated in already existing systems. A change of the basic software architecture and an introduction of new programming paradigms are very difficult in this context. It is all the more important to make the modernization of a legacy systems an ongoing part of the feature-driven development process. In this talk I will show step by step how to transform a big, monolithic legacy system towards a modern microservice based architecture. And I will demonstrate how two open libraries from Netflix can support this process. Hystrix will help us to improve the overall stability of the system and RxJava will help us to handle asynchronous processes in a more elegant way. Based on examples, I will show how the suggested modernization process could be realised.

Holger Kraus

November 08, 2015
Tweet

More Decks by Holger Kraus

Other Decks in Technology

Transcript

  1. Current problems > Maintenance is difficult > New features need

    a lot of time > Very unstable > Outdated technology > Doesn’t scale + frustrated developers :(
  2. Current problems > Maintenance is difficult > New features need

    a lot of time > Very unstable > Outdated technology > Doesn’t scale Microservices FTW ! not yet …
  3. Stability patterns > Timeouts > Circuit Breaker > Bulkhead …

    Fail Fast, Steady State, Handshaking, Test Harness, Decoupling Middleware
  4. Search Products 2. find external products 1. search products 3.

    find internal products 4. return internal + external products
  5. Current Problems > Maintenance is difficult > New features need

    a lot of time > Very unstable => enables further distribution > Outdated technology > Doesn’t scale
  6. © 2015 innoQ Deutschland GmbH We need a clear cut!

    https://www.flickr.com/photos/taefit/8528632756
  7. Macro Architecture > Integration > Deployment > Formats > Protocols

    > Reduce Choices what’s the same for all boxes ? = API + UI = Docker = JSON = HTTP + AMQP = Java, Go Monozon: pick your own!
  8. Time for RxJava > Reactive Extensions for the JVM >

    Asynchronous streams > Elements of > Iterator pattern > Observable pattern > Functional programming
  9. Summary > Use Hystrix to stabilize your system! > Use

    RxJava to increase the amount of async/ parallel processes in an easy way! > Introduce Microservices to get control over your system again! > Have fun :)