SlideShare a Scribd company logo
1 of 48
Download to read offline
Czyli dwa pierwsze importy w architekturze rozproszonej
RxJava & Hystrix
Mateusz ‘Serafin’ Gajewski
confitura 2015
Kim jestem?
@wendigo
Solutions Architect obszarów:
❖ Finansowego,
❖ Płatnościowego,
❖ Analityki danych
Główne zainteresowania:
❖ Skalowalność,
❖ Odporność na awarie,
❖ Przetwarzanie danych,
❖ Klastry obliczeniowe
Mateusz Gajewski
Agenda
❖ Rozproszone i reaktywne systemy,
❖ Jak ułatwić sobie życie narzędziami OSS,
❖ Kilka luźnych przemyśleń
Architektura rozproszona
Architektura rozproszona
Główne cechy:
❖ współbieżność komponentów,
❖ niezależne awarie komponentów,
❖ brak globalnego zegara
Czego oczekują
użytkownicy?
Systemy reaktywne
❖ responsywność,
❖ odporność na błędy,
❖ elastyczność,
❖ sterowanie zdarzeniami i wiadomościami
responsywność ~ górne ograniczenie na
czas przetwarzania
potrzebne: optymalizacja i zrównoleglenie
nieblokujących operacji
odporność ~ tolerancja na błędy i awarie
potrzebne: izolacja i obsługa
Platforma Allegro
❖ architektura master-master,
❖ 250+ mikrousług na JVM (kolejne w drodze),
❖ 4 prywatne AZ w 2 DC (4.500 VMs) + AWS,
❖ setki różnych technologii,
❖ dziesiątki niezależnych systemów storage’owych…
Co złego się może
wydarzyć?
Źródła opóźnień
❖ GC (JVM),
❖ noisy neighbours (cloud),
❖ stan sieci,
❖ wolumen danych,
❖ nieoptymalna implementacja,
❖ obciążenie klastra...
Źródła awarii
❖ logika biznesowa,
❖ implementacja techniczna,
❖ problemy sieciowo-sprzętowe,
❖ błąd operatora,
❖ prawo Murphy’ego ;)
Smutna prawda:
spontaniczne awarie i
wzrost czasów
odpowiedzi będą zdarzać
się cały czas
Musimy nauczyć się
niwelować ich efekty
używając odpowiednich
narzędzi.
RxJava 1.0+ Hystrix 1.4+
&
RxJava
“Biblioteka do tworzenia
asynchronicznych i opartych o
zdarzenia programów z
wykorzystaniem obserwowalnych
sekwencji”
Programowanie reaktywne
Programowanie reaktywne
Observable<T>
onNext(T value)
onCompleted()
onError(Throwable t)
Observer API:
Observable<T> vs pozostałe typy
wartości skalarne sekwencje
sync T getData() Iterable<T> getData()
async Future<T> getData() Observable<T> getData()
Składanie operatorów
getDataFromNetwork() // Observable<T>
.skip(10)
.take(5)
.map(value -> value + " transformed")
.subscribe(value -> {
System.out.println("Received => " + value);
});
Jak nas to przybliża do
responsywności i
odporności na błędy?
Cała magia leży w
dostępnych operatorach
(100+) ;)
merge
źródło: http://reactivex.io
flatMap
źródło: http://reactivex.io
zipWith
źródło: http://reactivex.io
retry
źródło: http://reactivex.io
timeout
źródło: http://reactivex.io
onErrorResumeNext
źródło: http://reactivex.io
Zunifikowana obsługa błędów
a.zipWith(b, (x, y) -> x + " " + y)
.subscribe(
value -> { System.out.println("onNext(" + value + ")"); },
error -> { System.out.println("onError(" + error + ")"); },
() -> { System.out.println("onCompleted"); }
);
Reactive pull back-pressure
Operatory: onBackpressure*, sample, throttle,...
Przykład z warsztatów RX Allegro
client
.getServices() // Observable<Service>
.flatMap(
service -> client
.getInstances(service) // Observable<Instance>
.onErrorResumeNext(Observable.<Instance>empty())
.timeout(500, TimeUnit.MILLISECONDS)
.retry(3),
16)
.subscribe(System.out::println);
RxJava - podsumowanie
❖ łatwe tworzenie kodu asynchronicznego,
❖ zunifikowana obsługa błędów,
❖ dostepność operatorów z zaawansowaną mechaniką (DRY),
❖ wysoka wydajność (ring buffers FTW),
❖ ukrywamy wewnętrzną implementację (sync vs async),
❖ kontrola nad back-pressure,
❖ testowalność kodu (wirtualny czas)
Hystrix
“Biblioteka zaprojektowana do
kontroli opóźnień, zapewnienia
niezawodności oraz izolacji dostępu
do zdalnych systemów. ”
Bezpiecznik
źródło: http://github.com/netflix/Hystrix
Hystrix(Observable)Command
Hystrix(Observable)Command =
logika biznesowa +
logika statycznego fallbacku +
strategia izolacji +
konfiguracja +
metryki
Strategia izolacji
Pozwala oddzielić od siebie, przerwać po
przekroczeniu czasu i ograniczyć ilość
równolegle wykonywanych komend:
❖ Oparta o pule wątków
❖ Oparta o semafory
Etapy wykonywania
źródło: http://github.com/netflix/Hystrix
Izolacja
Izolujemy siebie od awarii zdalnego
systemu
Chronimy zdalny system od “zalania”
go żądaniami po odzyskaniu
sprawności
Co jeszcze fajnego?
❖ dynamiczna zmiana parametrów (Archaius),
❖ strumień metryk (SSE),
❖ dashboard (Turbine),
❖ łatwe użycie za pomocą AOP,
❖ batchowanie komend (Request Collapsing),
❖ cache’owanie komend (Request Caching),
❖ natywne wsparcie RxJava
RxJava + Hystrix = ❤
Wnioski
❖ programowanie asynchroniczne nie musi
być trudne,
❖ domeny awarii mogą być ograniczone,
❖ opóźnienia można kontrolować,
❖ RxJava i Hystrix można wprowadzić w
każdym momencie życia projektu ;)
Pytania?
Dzięki!
Znajdziesz nas:
Blog: allegrotech.io
Twitter: @allegrotechblog
pracuj z nami
kariera.allegro.pl

More Related Content

What's hot

Aplikacje internetowe real-time w oparciu o React/Redux
Aplikacje internetowe real-time w oparciu o React/ReduxAplikacje internetowe real-time w oparciu o React/Redux
Aplikacje internetowe real-time w oparciu o React/ReduxDawid Rusnak
 
Krótka historia czasu - Confitura 2013
Krótka historia czasu - Confitura 2013Krótka historia czasu - Confitura 2013
Krótka historia czasu - Confitura 2013nurkiewicz
 
4Developers 2015: Orleans - aplikacje, które skalują i dystrybuują się same -...
4Developers 2015: Orleans - aplikacje, które skalują i dystrybuują się same -...4Developers 2015: Orleans - aplikacje, które skalują i dystrybuują się same -...
4Developers 2015: Orleans - aplikacje, które skalują i dystrybuują się same -...PROIDEA
 
Programowanie Równolegle - Parallel Extensions
Programowanie Równolegle - Parallel ExtensionsProgramowanie Równolegle - Parallel Extensions
Programowanie Równolegle - Parallel ExtensionsWojciech Grześkowiak
 
Testowanie EDW czyli projekt piekło - Bartłomiej Nikiel
Testowanie EDW czyli projekt piekło - Bartłomiej NikielTestowanie EDW czyli projekt piekło - Bartłomiej Nikiel
Testowanie EDW czyli projekt piekło - Bartłomiej Nikielkraqa
 
Asynchroniczne testy JavaScript aplikacji webowych
Asynchroniczne testy JavaScript aplikacji webowychAsynchroniczne testy JavaScript aplikacji webowych
Asynchroniczne testy JavaScript aplikacji webowychFuture Processing
 
Wprowadzenie do technologii Big Data
Wprowadzenie do technologii Big DataWprowadzenie do technologii Big Data
Wprowadzenie do technologii Big DataSages
 
ETW w służbie programisty .NET
ETW w służbie programisty .NETETW w służbie programisty .NET
ETW w służbie programisty .NETKonrad Kokosa
 
Kubernetes: from zero to be hero
Kubernetes: from zero to be heroKubernetes: from zero to be hero
Kubernetes: from zero to be heroThe Software House
 
Wprowadzenie do testów wydajnościowych w k6
Wprowadzenie do testów wydajnościowych w k6Wprowadzenie do testów wydajnościowych w k6
Wprowadzenie do testów wydajnościowych w k6The Software House
 
xlab #8 - Architektura mikroserwisów na platformie Spring Boot
xlab #8 - Architektura mikroserwisów na platformie Spring Bootxlab #8 - Architektura mikroserwisów na platformie Spring Boot
xlab #8 - Architektura mikroserwisów na platformie Spring BootXSolve
 
4Developers 2015: Property-based testing w języku Scala - Paweł Grajewski
4Developers 2015: Property-based testing w języku Scala - Paweł Grajewski4Developers 2015: Property-based testing w języku Scala - Paweł Grajewski
4Developers 2015: Property-based testing w języku Scala - Paweł GrajewskiPROIDEA
 

What's hot (16)

Monitoring sieci
Monitoring sieciMonitoring sieci
Monitoring sieci
 
NSOperation(Queue)
NSOperation(Queue) NSOperation(Queue)
NSOperation(Queue)
 
Aplikacje internetowe real-time w oparciu o React/Redux
Aplikacje internetowe real-time w oparciu o React/ReduxAplikacje internetowe real-time w oparciu o React/Redux
Aplikacje internetowe real-time w oparciu o React/Redux
 
Krótka historia czasu - Confitura 2013
Krótka historia czasu - Confitura 2013Krótka historia czasu - Confitura 2013
Krótka historia czasu - Confitura 2013
 
4Developers 2015: Orleans - aplikacje, które skalują i dystrybuują się same -...
4Developers 2015: Orleans - aplikacje, które skalują i dystrybuują się same -...4Developers 2015: Orleans - aplikacje, które skalują i dystrybuują się same -...
4Developers 2015: Orleans - aplikacje, które skalują i dystrybuują się same -...
 
Programowanie Równolegle - Parallel Extensions
Programowanie Równolegle - Parallel ExtensionsProgramowanie Równolegle - Parallel Extensions
Programowanie Równolegle - Parallel Extensions
 
Rundeck & Ansible
Rundeck & AnsibleRundeck & Ansible
Rundeck & Ansible
 
Infrastructure As Code
Infrastructure As CodeInfrastructure As Code
Infrastructure As Code
 
Testowanie EDW czyli projekt piekło - Bartłomiej Nikiel
Testowanie EDW czyli projekt piekło - Bartłomiej NikielTestowanie EDW czyli projekt piekło - Bartłomiej Nikiel
Testowanie EDW czyli projekt piekło - Bartłomiej Nikiel
 
Asynchroniczne testy JavaScript aplikacji webowych
Asynchroniczne testy JavaScript aplikacji webowychAsynchroniczne testy JavaScript aplikacji webowych
Asynchroniczne testy JavaScript aplikacji webowych
 
Wprowadzenie do technologii Big Data
Wprowadzenie do technologii Big DataWprowadzenie do technologii Big Data
Wprowadzenie do technologii Big Data
 
ETW w służbie programisty .NET
ETW w służbie programisty .NETETW w służbie programisty .NET
ETW w służbie programisty .NET
 
Kubernetes: from zero to be hero
Kubernetes: from zero to be heroKubernetes: from zero to be hero
Kubernetes: from zero to be hero
 
Wprowadzenie do testów wydajnościowych w k6
Wprowadzenie do testów wydajnościowych w k6Wprowadzenie do testów wydajnościowych w k6
Wprowadzenie do testów wydajnościowych w k6
 
xlab #8 - Architektura mikroserwisów na platformie Spring Boot
xlab #8 - Architektura mikroserwisów na platformie Spring Bootxlab #8 - Architektura mikroserwisów na platformie Spring Boot
xlab #8 - Architektura mikroserwisów na platformie Spring Boot
 
4Developers 2015: Property-based testing w języku Scala - Paweł Grajewski
4Developers 2015: Property-based testing w języku Scala - Paweł Grajewski4Developers 2015: Property-based testing w języku Scala - Paweł Grajewski
4Developers 2015: Property-based testing w języku Scala - Paweł Grajewski
 

Similar to RxJava & Hystrix - Perfect match for distributed applications

tRPC - czy to koniec GraphQL?
tRPC - czy to koniec GraphQL?tRPC - czy to koniec GraphQL?
tRPC - czy to koniec GraphQL?Brainhub
 
Cometari Dedicated Solutions Oferta ogólna
Cometari Dedicated Solutions Oferta ogólnaCometari Dedicated Solutions Oferta ogólna
Cometari Dedicated Solutions Oferta ogólnaJakub Hajek
 
[CareerCon] Wirtualizacja (PL)
[CareerCon] Wirtualizacja (PL)[CareerCon] Wirtualizacja (PL)
[CareerCon] Wirtualizacja (PL)Jaroslaw Sobel
 
PLNOG 21: Piotr Szczepanek - Elastic w Treatnet. Innowacyjny system wykrywani...
PLNOG 21: Piotr Szczepanek - Elastic w Treatnet. Innowacyjny system wykrywani...PLNOG 21: Piotr Szczepanek - Elastic w Treatnet. Innowacyjny system wykrywani...
PLNOG 21: Piotr Szczepanek - Elastic w Treatnet. Innowacyjny system wykrywani...PROIDEA
 
PLNOG19 - Andrzej Prałat & Wojciech Rybicki - Jak usprawnić działanie WAF wyk...
PLNOG19 - Andrzej Prałat & Wojciech Rybicki - Jak usprawnić działanie WAF wyk...PLNOG19 - Andrzej Prałat & Wojciech Rybicki - Jak usprawnić działanie WAF wyk...
PLNOG19 - Andrzej Prałat & Wojciech Rybicki - Jak usprawnić działanie WAF wyk...PROIDEA
 
[JuraSIC! Meetup] Krzysztof Sikora- Jak Service Fabric rozwiąże twoje problem...
[JuraSIC! Meetup] Krzysztof Sikora- Jak Service Fabric rozwiąże twoje problem...[JuraSIC! Meetup] Krzysztof Sikora- Jak Service Fabric rozwiąże twoje problem...
[JuraSIC! Meetup] Krzysztof Sikora- Jak Service Fabric rozwiąże twoje problem...Future Processing
 
PLNOG22: Konrad Tutak & Maciej Cichy - W jaki sposób operatorzy zapewniają ni...
PLNOG22: Konrad Tutak & Maciej Cichy - W jaki sposób operatorzy zapewniają ni...PLNOG22: Konrad Tutak & Maciej Cichy - W jaki sposób operatorzy zapewniają ni...
PLNOG22: Konrad Tutak & Maciej Cichy - W jaki sposób operatorzy zapewniają ni...PROIDEA
 
PLNOG 22 - Maciej Cichy, Konrad Tutak - W jaki sposób operatorzy zapewniają n...
PLNOG 22 - Maciej Cichy, Konrad Tutak - W jaki sposób operatorzy zapewniają n...PLNOG 22 - Maciej Cichy, Konrad Tutak - W jaki sposób operatorzy zapewniają n...
PLNOG 22 - Maciej Cichy, Konrad Tutak - W jaki sposób operatorzy zapewniają n...PROIDEA
 
PLNOG22 - Piotr Stolarek - Bezpieczeństwo użytkowania platform usługowych Tel...
PLNOG22 - Piotr Stolarek - Bezpieczeństwo użytkowania platform usługowych Tel...PLNOG22 - Piotr Stolarek - Bezpieczeństwo użytkowania platform usługowych Tel...
PLNOG22 - Piotr Stolarek - Bezpieczeństwo użytkowania platform usługowych Tel...PROIDEA
 
Publikacja usług Exchange 2013 w internecie. Co dalej bez TMG?
Publikacja usług Exchange 2013 w internecie. Co dalej bez TMG?Publikacja usług Exchange 2013 w internecie. Co dalej bez TMG?
Publikacja usług Exchange 2013 w internecie. Co dalej bez TMG?Konrad Sagala
 
Infrastruktura Hiperkonwergentna na przykładzie platformy Nutanix - Marcin Ka...
Infrastruktura Hiperkonwergentna na przykładzie platformy Nutanix - Marcin Ka...Infrastruktura Hiperkonwergentna na przykładzie platformy Nutanix - Marcin Ka...
Infrastruktura Hiperkonwergentna na przykładzie platformy Nutanix - Marcin Ka...jzielinski_pl
 
Maciej Rak - HP - Matrix for hosting
Maciej Rak - HP - Matrix for hostingMaciej Rak - HP - Matrix for hosting
Maciej Rak - HP - Matrix for hostingWebhosting.pl
 
PLNOG16: Nowe założenia dla zbieranie logów, statystyk i alertów, Maciej Kałk...
PLNOG16: Nowe założenia dla zbieranie logów, statystyk i alertów, Maciej Kałk...PLNOG16: Nowe założenia dla zbieranie logów, statystyk i alertów, Maciej Kałk...
PLNOG16: Nowe założenia dla zbieranie logów, statystyk i alertów, Maciej Kałk...PROIDEA
 
Cloud computing na bazie Windows Azure, Tomek Kopacz, Microsoft
Cloud computing na bazie Windows Azure, Tomek Kopacz, MicrosoftCloud computing na bazie Windows Azure, Tomek Kopacz, Microsoft
Cloud computing na bazie Windows Azure, Tomek Kopacz, MicrosoftBiznes 2.0
 
Tomasz Kopacz, Cloud computing na bazie Windows Azure
Tomasz Kopacz, Cloud computing na bazie Windows AzureTomasz Kopacz, Cloud computing na bazie Windows Azure
Tomasz Kopacz, Cloud computing na bazie Windows AzureWebhosting.pl
 
Apache http server - proste i zaawansowane przypadki użycia
Apache http server - proste i zaawansowane przypadki użyciaApache http server - proste i zaawansowane przypadki użycia
Apache http server - proste i zaawansowane przypadki użyciaWojciech Lichota
 
ASP.NET MVC - najważniejsze założenia
ASP.NET MVC - najważniejsze założeniaASP.NET MVC - najważniejsze założenia
ASP.NET MVC - najważniejsze założeniaBartlomiej Zass
 
Wjug from java to big data
Wjug   from java to big dataWjug   from java to big data
Wjug from java to big dataPiotr Guzik
 
Xen desktop na platformie nutanix
Xen desktop na platformie nutanixXen desktop na platformie nutanix
Xen desktop na platformie nutanixPawel Serwan
 
Bohater UI bez front end developera ?
Bohater UI bez front end developera ?Bohater UI bez front end developera ?
Bohater UI bez front end developera ?Quick-Solution
 

Similar to RxJava & Hystrix - Perfect match for distributed applications (20)

tRPC - czy to koniec GraphQL?
tRPC - czy to koniec GraphQL?tRPC - czy to koniec GraphQL?
tRPC - czy to koniec GraphQL?
 
Cometari Dedicated Solutions Oferta ogólna
Cometari Dedicated Solutions Oferta ogólnaCometari Dedicated Solutions Oferta ogólna
Cometari Dedicated Solutions Oferta ogólna
 
[CareerCon] Wirtualizacja (PL)
[CareerCon] Wirtualizacja (PL)[CareerCon] Wirtualizacja (PL)
[CareerCon] Wirtualizacja (PL)
 
PLNOG 21: Piotr Szczepanek - Elastic w Treatnet. Innowacyjny system wykrywani...
PLNOG 21: Piotr Szczepanek - Elastic w Treatnet. Innowacyjny system wykrywani...PLNOG 21: Piotr Szczepanek - Elastic w Treatnet. Innowacyjny system wykrywani...
PLNOG 21: Piotr Szczepanek - Elastic w Treatnet. Innowacyjny system wykrywani...
 
PLNOG19 - Andrzej Prałat & Wojciech Rybicki - Jak usprawnić działanie WAF wyk...
PLNOG19 - Andrzej Prałat & Wojciech Rybicki - Jak usprawnić działanie WAF wyk...PLNOG19 - Andrzej Prałat & Wojciech Rybicki - Jak usprawnić działanie WAF wyk...
PLNOG19 - Andrzej Prałat & Wojciech Rybicki - Jak usprawnić działanie WAF wyk...
 
[JuraSIC! Meetup] Krzysztof Sikora- Jak Service Fabric rozwiąże twoje problem...
[JuraSIC! Meetup] Krzysztof Sikora- Jak Service Fabric rozwiąże twoje problem...[JuraSIC! Meetup] Krzysztof Sikora- Jak Service Fabric rozwiąże twoje problem...
[JuraSIC! Meetup] Krzysztof Sikora- Jak Service Fabric rozwiąże twoje problem...
 
PLNOG22: Konrad Tutak & Maciej Cichy - W jaki sposób operatorzy zapewniają ni...
PLNOG22: Konrad Tutak & Maciej Cichy - W jaki sposób operatorzy zapewniają ni...PLNOG22: Konrad Tutak & Maciej Cichy - W jaki sposób operatorzy zapewniają ni...
PLNOG22: Konrad Tutak & Maciej Cichy - W jaki sposób operatorzy zapewniają ni...
 
PLNOG 22 - Maciej Cichy, Konrad Tutak - W jaki sposób operatorzy zapewniają n...
PLNOG 22 - Maciej Cichy, Konrad Tutak - W jaki sposób operatorzy zapewniają n...PLNOG 22 - Maciej Cichy, Konrad Tutak - W jaki sposób operatorzy zapewniają n...
PLNOG 22 - Maciej Cichy, Konrad Tutak - W jaki sposób operatorzy zapewniają n...
 
PLNOG22 - Piotr Stolarek - Bezpieczeństwo użytkowania platform usługowych Tel...
PLNOG22 - Piotr Stolarek - Bezpieczeństwo użytkowania platform usługowych Tel...PLNOG22 - Piotr Stolarek - Bezpieczeństwo użytkowania platform usługowych Tel...
PLNOG22 - Piotr Stolarek - Bezpieczeństwo użytkowania platform usługowych Tel...
 
Publikacja usług Exchange 2013 w internecie. Co dalej bez TMG?
Publikacja usług Exchange 2013 w internecie. Co dalej bez TMG?Publikacja usług Exchange 2013 w internecie. Co dalej bez TMG?
Publikacja usług Exchange 2013 w internecie. Co dalej bez TMG?
 
Infrastruktura Hiperkonwergentna na przykładzie platformy Nutanix - Marcin Ka...
Infrastruktura Hiperkonwergentna na przykładzie platformy Nutanix - Marcin Ka...Infrastruktura Hiperkonwergentna na przykładzie platformy Nutanix - Marcin Ka...
Infrastruktura Hiperkonwergentna na przykładzie platformy Nutanix - Marcin Ka...
 
Maciej Rak - HP - Matrix for hosting
Maciej Rak - HP - Matrix for hostingMaciej Rak - HP - Matrix for hosting
Maciej Rak - HP - Matrix for hosting
 
PLNOG16: Nowe założenia dla zbieranie logów, statystyk i alertów, Maciej Kałk...
PLNOG16: Nowe założenia dla zbieranie logów, statystyk i alertów, Maciej Kałk...PLNOG16: Nowe założenia dla zbieranie logów, statystyk i alertów, Maciej Kałk...
PLNOG16: Nowe założenia dla zbieranie logów, statystyk i alertów, Maciej Kałk...
 
Cloud computing na bazie Windows Azure, Tomek Kopacz, Microsoft
Cloud computing na bazie Windows Azure, Tomek Kopacz, MicrosoftCloud computing na bazie Windows Azure, Tomek Kopacz, Microsoft
Cloud computing na bazie Windows Azure, Tomek Kopacz, Microsoft
 
Tomasz Kopacz, Cloud computing na bazie Windows Azure
Tomasz Kopacz, Cloud computing na bazie Windows AzureTomasz Kopacz, Cloud computing na bazie Windows Azure
Tomasz Kopacz, Cloud computing na bazie Windows Azure
 
Apache http server - proste i zaawansowane przypadki użycia
Apache http server - proste i zaawansowane przypadki użyciaApache http server - proste i zaawansowane przypadki użycia
Apache http server - proste i zaawansowane przypadki użycia
 
ASP.NET MVC - najważniejsze założenia
ASP.NET MVC - najważniejsze założeniaASP.NET MVC - najważniejsze założenia
ASP.NET MVC - najważniejsze założenia
 
Wjug from java to big data
Wjug   from java to big dataWjug   from java to big data
Wjug from java to big data
 
Xen desktop na platformie nutanix
Xen desktop na platformie nutanixXen desktop na platformie nutanix
Xen desktop na platformie nutanix
 
Bohater UI bez front end developera ?
Bohater UI bez front end developera ?Bohater UI bez front end developera ?
Bohater UI bez front end developera ?
 

More from allegro.tech

allegro.tech Data Science Meetup #2: Elasticsearch w praktyce
allegro.tech Data Science Meetup #2: Elasticsearch w praktyceallegro.tech Data Science Meetup #2: Elasticsearch w praktyce
allegro.tech Data Science Meetup #2: Elasticsearch w praktyceallegro.tech
 
Scaling infrastructure beyond containers
Scaling infrastructure beyond containersScaling infrastructure beyond containers
Scaling infrastructure beyond containersallegro.tech
 
Confitura 2015 - Mikrousługi nie lubią być samotne
Confitura 2015 - Mikrousługi nie lubią być samotneConfitura 2015 - Mikrousługi nie lubią być samotne
Confitura 2015 - Mikrousługi nie lubią być samotneallegro.tech
 
Microservices architecture pitfalls
Microservices architecture pitfallsMicroservices architecture pitfalls
Microservices architecture pitfallsallegro.tech
 
RxJava - introduction & design
RxJava - introduction & designRxJava - introduction & design
RxJava - introduction & designallegro.tech
 
JDD 2014: Adam Dubiel - Import allegro.tech.internal.*
JDD 2014: Adam Dubiel - Import allegro.tech.internal.*JDD 2014: Adam Dubiel - Import allegro.tech.internal.*
JDD 2014: Adam Dubiel - Import allegro.tech.internal.*allegro.tech
 
Fighting with scale
Fighting with scaleFighting with scale
Fighting with scaleallegro.tech
 

More from allegro.tech (7)

allegro.tech Data Science Meetup #2: Elasticsearch w praktyce
allegro.tech Data Science Meetup #2: Elasticsearch w praktyceallegro.tech Data Science Meetup #2: Elasticsearch w praktyce
allegro.tech Data Science Meetup #2: Elasticsearch w praktyce
 
Scaling infrastructure beyond containers
Scaling infrastructure beyond containersScaling infrastructure beyond containers
Scaling infrastructure beyond containers
 
Confitura 2015 - Mikrousługi nie lubią być samotne
Confitura 2015 - Mikrousługi nie lubią być samotneConfitura 2015 - Mikrousługi nie lubią być samotne
Confitura 2015 - Mikrousługi nie lubią być samotne
 
Microservices architecture pitfalls
Microservices architecture pitfallsMicroservices architecture pitfalls
Microservices architecture pitfalls
 
RxJava - introduction & design
RxJava - introduction & designRxJava - introduction & design
RxJava - introduction & design
 
JDD 2014: Adam Dubiel - Import allegro.tech.internal.*
JDD 2014: Adam Dubiel - Import allegro.tech.internal.*JDD 2014: Adam Dubiel - Import allegro.tech.internal.*
JDD 2014: Adam Dubiel - Import allegro.tech.internal.*
 
Fighting with scale
Fighting with scaleFighting with scale
Fighting with scale
 

RxJava & Hystrix - Perfect match for distributed applications