Your SlideShare is downloading. ×
0
Reactieve applicaties; klaar voor de toekomst
Reactieve applicaties; klaar voor de toekomst
Reactieve applicaties; klaar voor de toekomst
Reactieve applicaties; klaar voor de toekomst
Reactieve applicaties; klaar voor de toekomst
Reactieve applicaties; klaar voor de toekomst
Reactieve applicaties; klaar voor de toekomst
Reactieve applicaties; klaar voor de toekomst
Reactieve applicaties; klaar voor de toekomst
Reactieve applicaties; klaar voor de toekomst
Reactieve applicaties; klaar voor de toekomst
Reactieve applicaties; klaar voor de toekomst
Reactieve applicaties; klaar voor de toekomst
Reactieve applicaties; klaar voor de toekomst
Reactieve applicaties; klaar voor de toekomst
Reactieve applicaties; klaar voor de toekomst
Reactieve applicaties; klaar voor de toekomst
Reactieve applicaties; klaar voor de toekomst
Reactieve applicaties; klaar voor de toekomst
Reactieve applicaties; klaar voor de toekomst
Reactieve applicaties; klaar voor de toekomst
Reactieve applicaties; klaar voor de toekomst
Reactieve applicaties; klaar voor de toekomst
Reactieve applicaties; klaar voor de toekomst
Reactieve applicaties; klaar voor de toekomst
Reactieve applicaties; klaar voor de toekomst
Reactieve applicaties; klaar voor de toekomst
Reactieve applicaties; klaar voor de toekomst
Reactieve applicaties; klaar voor de toekomst
Reactieve applicaties; klaar voor de toekomst
Reactieve applicaties; klaar voor de toekomst
Reactieve applicaties; klaar voor de toekomst
Reactieve applicaties; klaar voor de toekomst
Reactieve applicaties; klaar voor de toekomst
Reactieve applicaties; klaar voor de toekomst
Reactieve applicaties; klaar voor de toekomst
Reactieve applicaties; klaar voor de toekomst
Reactieve applicaties; klaar voor de toekomst
Reactieve applicaties; klaar voor de toekomst
Reactieve applicaties; klaar voor de toekomst
Reactieve applicaties; klaar voor de toekomst
Reactieve applicaties; klaar voor de toekomst
Reactieve applicaties; klaar voor de toekomst
Reactieve applicaties; klaar voor de toekomst
Reactieve applicaties; klaar voor de toekomst
Reactieve applicaties; klaar voor de toekomst
Reactieve applicaties; klaar voor de toekomst
Reactieve applicaties; klaar voor de toekomst
Reactieve applicaties; klaar voor de toekomst
Reactieve applicaties; klaar voor de toekomst
Reactieve applicaties; klaar voor de toekomst
Reactieve applicaties; klaar voor de toekomst
Reactieve applicaties; klaar voor de toekomst
Reactieve applicaties; klaar voor de toekomst
Reactieve applicaties; klaar voor de toekomst
Reactieve applicaties; klaar voor de toekomst
Reactieve applicaties; klaar voor de toekomst
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Reactieve applicaties; klaar voor de toekomst

226

Published on

Published in: Technology, Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
226
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • low-level primitives (locking, threading) are part of infrastructureApplication code doesn’t expose “real infrastructure”Loose coupling between components
  • Transcript

    1. Reactieve applicaties Klaar voor de toekomst JFall 2013 Allard Buijze – allard.buijze@trifork.nl
    2. Allard Buijze Software Architect bij Trifork (Amsterdam) Organsatoren van GOTO & QCON 15 jaar web development ervaring Gelooft sterk in DDD en CQRS Ontwikkelaar en initiatiefnemer van Axon Framework Java Framework voor schaalbaarheid en performance www.axonframework.org
    3. Een kleine terugblik… 1990 0,3% van Nederland had internettoegang 0.001 PB / Maand data-transfer 2000 40% internettoegang 86 PB / Maand 2012 93% internettoegang > 30 000 PB / Maand Waarvan 885 PB / Maand mobiel
    4. Layered architecture
    5. In de jaren 70… Bron: wikipedia.org
    6. In de jaren 70… Bron: vintagecomputer.net
    7. Het web in 2013… en verder…
    8. Het web in 2013… en verder…
    9. Het web in 2013… en verder…
    10. Niet meer alleen Google en Twitter…
    11. Reactive Merriam Webster: Readily responsive to a stimulus
    12. De kwaliteiten van een reactieve applicatie Responsive Scalable Reactive EventDriven Resilient
    13. Responsive Scalable Reactive EventDriven Resilient
    14. Normaal... A C getState() state B
    15. De “Event Driven” manier A D C event E pub-sub event B
    16. Event Driven – Amdahl’s Law The speedup of a program using multiple processors in parallel computing is limited by the sequential fraction of the program.
    17. Procedural – Not parallelizable... public void doMyBusinessLogic() { doSomethingInternally(); externalComponent1.doSomethingRelated(); externalComponent2.doSomethingElse(); return someResult; }
    18. Procedural – Parallelizable, but ugly... public void doMyBusinessLogic() { doSomethingInternally(); threadPool.execute(new Runnable() { ... externalComponent1.doSomethingRelated()}); threadPool.execute(new Runnable() { ... externalComponent2.doSomethingElse()}); return someResult; }
    19. Parallelizable... public void doMyBusinessLogic() { doSomethingInternally(); eventPublisher.publish(aNotification()); return someResult; } public void handler(Notification n) { doSomethingRelated(); }
    20. Separation of concerns Business logica C Infrastructuur - Locking - Threading - Netwerk / IO event pub-sub Geen harde No dependency afhankelijkheden Business logica event B
    21. De kwaliteiten van een reactieve applicatie Responsive Scalable Reactive EventDriven Resilient
    22. Scalable Merriam Webster: “capable of being easily expanded or upgraded on demand”
    23. Elasticiteit
    24. Location transparency SomeServiceInterface service = new RemoteService(...) result = service.callSomeMethod(); Doet zich voor als lokale aanroep...
    25. Location transparency – embrace the network service.someMethod(someParameter, new Callback() { public void onResult(Result result) { // do stuff with result } public void onError(Exception e) { // handle failure } });
    26. Events – Inherently location transparent D C event E pub-sub event B
    27. De kwaliteiten van een reactieve applicatie Responsive Scalable Reactive EventDriven Resilient
    28. Resilient Merriam Webster: • the ability of a substance or object to spring back into shape • the capacity to recover quickly from difficulties
    29. Voorbeelden genoeg… “Barclays Bank System Crashes” (2012) “Lloyds' banking systems failure hits 22m retail customers” (2012) “Failure of American Airlines reservations system grounds all flights” (2013)
    30. Observeer componenten D C event pub-sub event ! E ! B
    31. Stability patterns Bulkhead Circuit breaker Timeouts Decoupling middleware Handshaking Test Harness Let it crash!
    32. Stability patterns – Bulkhead
    33. Stability patterns – Bulkhead
    34. Bulkhead in software A ! C event pub-sub event B
    35. Bulkhead in software A C event pub-sub event B
    36. Bulkhead in software A C event pub-sub event B
    37. Circuitbreaker
    38. Stability patterns – Circuitbreaker A C checkStatus() doSomething() ! B
    39. Stability patterns Bulkhead Circuit breaker Timeouts Decoupling middleware Handshaking Test Harness Let it crash!
    40. De kwaliteiten van een reactieve applicatie Responsive Scalable Reactive EventDriven Resilient
    41. Responsive Merriam Webster: “quick to respond or react appropriately"
    42. Responsive is...
    43. Responsive is...  Real-time  Engaging  Rich  Collaborative
    44. Dus niet....
    45. Dus wel...
    46. Observable models... subscribe() notify() Stateful Client Server
    47. Als we toch al events hebben... pub-sub Stateful Client Server
    48. # voorkomens  # voorkomens  Latency.... latency  latency 
    49. Capacity planning – Hoe groot moet een queue zijn? Zo “kort” mogelijk? Lekker “lang”? Onbeperkt? Reken het uit, of meet het! Pn n (1 ) Wq Ws 1
    50. # requests  Capacity planning Tijd 
    51. De kwaliteiten van een reactieve applicatie Responsive Scalable Reactive EventDriven Resilient
    52. En hoe? Tools en hulpmiddelen voor Reactive Applications
    53. Tools en Frameworks Akka – Actor Model Axon Framework – CQRS / EDA Spring Reactor – Async message processing WebSockets (JSR-356) – Full duplex communicatie over http(s) Lambda Expressions Method references – Voorkom “callback hell”
    54. Latency Responsive Axon Framework Event Driven Resilience Location transparency Actor model Capacity planning Queues Event Driven Architecture Collaborative Embrace the network Stability patterns Amdahl Real-time Akka Engaging Circuit breaker Back pressure Asynchronous Responsive Lambda’s Bulkhead pattern WebSockets Little’s Law Spring Reactor
    55. reactivemanifesto.org
    56. Vragen? Meer informatie: www.reactivemanifesto.org www.axonframework.org allard.buijze@trifork.nl

    ×