rebus er ingen gåde
DESCRIPTION
Nu hvor NServiceBus er blevet til et kapitalistisk projekt, og det dermed er blevet forbundet med økonomiske overvejelser og andet besvær at benytte det, så er der plads til en ny open source hippie-bus i din enterprise: Rebus.Rebus startede som et personligt research-projekt, hvor jeg forsøgte at få overblik over hvad det egentlig er man betaler for med NServiceBus. Siden er Rebus blevet lidt mere seriøs, og den binder nu produktionssystemer sammen adskillige steder i verden.Rebus' filosofi er at den skal være simpel – simpel at komme i gang med, og simpel at bruge. Og så skal den have de sødeste og mest hjælpsomme fejlbeskeder.Denne præsentation vil snakke lidt om distribuerede systemer og messaging, og så vil vi kigge på filosofien bag Rebus samt eksempler på hvordan man kommer i gang.TRANSCRIPT
![Page 1: Rebus er ingen gåde](https://reader033.vdocuments.pub/reader033/viewer/2022052602/559e29aa1a28abfe0b8b4610/html5/thumbnails/1.jpg)
er ingen gåde.......
Mogens Heller Grabe
![Page 2: Rebus er ingen gåde](https://reader033.vdocuments.pub/reader033/viewer/2022052602/559e29aa1a28abfe0b8b4610/html5/thumbnails/2.jpg)
Agenda!• Hvad er dit problem?!• Hvordan kan det løses?!• Rebus!!!Slides!!+ snak!!+ kode!
![Page 4: Rebus er ingen gåde](https://reader033.vdocuments.pub/reader033/viewer/2022052602/559e29aa1a28abfe0b8b4610/html5/thumbnails/4.jpg)
Hvad er dit problem?!
![Page 5: Rebus er ingen gåde](https://reader033.vdocuments.pub/reader033/viewer/2022052602/559e29aa1a28abfe0b8b4610/html5/thumbnails/5.jpg)
For eksempel:!public class Køb : FinansielTransaktion {
public void Bogfør() { // (....) foreach(var d in Pantebrev.Debitorer) { d.TilmeldTilCprMatch(); d.InhentKreditstatus(); } foreach(var k in Pantebrev.Kauti(...)
}
![Page 6: Rebus er ingen gåde](https://reader033.vdocuments.pub/reader033/viewer/2022052602/559e29aa1a28abfe0b8b4610/html5/thumbnails/6.jpg)
Long-lived transactions...!
![Page 7: Rebus er ingen gåde](https://reader033.vdocuments.pub/reader033/viewer/2022052602/559e29aa1a28abfe0b8b4610/html5/thumbnails/7.jpg)
begin tran!
commit tran!
DoThis()!
DoThat()!
![Page 8: Rebus er ingen gåde](https://reader033.vdocuments.pub/reader033/viewer/2022052602/559e29aa1a28abfe0b8b4610/html5/thumbnails/8.jpg)
begin tran!
commit tran!
DoThis()!
DoThat()!
commit tran!begin tran!
?!
![Page 9: Rebus er ingen gåde](https://reader033.vdocuments.pub/reader033/viewer/2022052602/559e29aa1a28abfe0b8b4610/html5/thumbnails/9.jpg)
Async Reliable Messaging!
![Page 10: Rebus er ingen gåde](https://reader033.vdocuments.pub/reader033/viewer/2022052602/559e29aa1a28abfe0b8b4610/html5/thumbnails/10.jpg)
Messaging!
![Page 11: Rebus er ingen gåde](https://reader033.vdocuments.pub/reader033/viewer/2022052602/559e29aa1a28abfe0b8b4610/html5/thumbnails/11.jpg)
Reliable!
![Page 12: Rebus er ingen gåde](https://reader033.vdocuments.pub/reader033/viewer/2022052602/559e29aa1a28abfe0b8b4610/html5/thumbnails/12.jpg)
Async!
![Page 13: Rebus er ingen gåde](https://reader033.vdocuments.pub/reader033/viewer/2022052602/559e29aa1a28abfe0b8b4610/html5/thumbnails/13.jpg)
![Page 14: Rebus er ingen gåde](https://reader033.vdocuments.pub/reader033/viewer/2022052602/559e29aa1a28abfe0b8b4610/html5/thumbnails/14.jpg)
Windows FTW!!1!
![Page 15: Rebus er ingen gåde](https://reader033.vdocuments.pub/reader033/viewer/2022052602/559e29aa1a28abfe0b8b4610/html5/thumbnails/15.jpg)
Hvad er så det der “service bus” for noget?!
![Page 16: Rebus er ingen gåde](https://reader033.vdocuments.pub/reader033/viewer/2022052602/559e29aa1a28abfe0b8b4610/html5/thumbnails/16.jpg)
![Page 17: Rebus er ingen gåde](https://reader033.vdocuments.pub/reader033/viewer/2022052602/559e29aa1a28abfe0b8b4610/html5/thumbnails/17.jpg)
![Page 18: Rebus er ingen gåde](https://reader033.vdocuments.pub/reader033/viewer/2022052602/559e29aa1a28abfe0b8b4610/html5/thumbnails/18.jpg)
Køkultur!
![Page 19: Rebus er ingen gåde](https://reader033.vdocuments.pub/reader033/viewer/2022052602/559e29aa1a28abfe0b8b4610/html5/thumbnails/19.jpg)
Request/reply!
![Page 20: Rebus er ingen gåde](https://reader033.vdocuments.pub/reader033/viewer/2022052602/559e29aa1a28abfe0b8b4610/html5/thumbnails/20.jpg)
Publish/subscribe!
![Page 21: Rebus er ingen gåde](https://reader033.vdocuments.pub/reader033/viewer/2022052602/559e29aa1a28abfe0b8b4610/html5/thumbnails/21.jpg)
Process manager!
![Page 22: Rebus er ingen gåde](https://reader033.vdocuments.pub/reader033/viewer/2022052602/559e29aa1a28abfe0b8b4610/html5/thumbnails/22.jpg)
NServiceBus!
![Page 23: Rebus er ingen gåde](https://reader033.vdocuments.pub/reader033/viewer/2022052602/559e29aa1a28abfe0b8b4610/html5/thumbnails/23.jpg)
MassTransitRhino Service Bus!
![Page 24: Rebus er ingen gåde](https://reader033.vdocuments.pub/reader033/viewer/2022052602/559e29aa1a28abfe0b8b4610/html5/thumbnails/24.jpg)
hmmm...!
![Page 25: Rebus er ingen gåde](https://reader033.vdocuments.pub/reader033/viewer/2022052602/559e29aa1a28abfe0b8b4610/html5/thumbnails/25.jpg)
Rebus!• Første mål:!– Request/reply + publish/subscribe!– Lavet efter NServiceBus-modellen!– Bedre fejlbeskeder!
![Page 26: Rebus er ingen gåde](https://reader033.vdocuments.pub/reader033/viewer/2022052602/559e29aa1a28abfe0b8b4610/html5/thumbnails/26.jpg)
~ 400 linjer!!!
![Page 27: Rebus er ingen gåde](https://reader033.vdocuments.pub/reader033/viewer/2022052602/559e29aa1a28abfe0b8b4610/html5/thumbnails/27.jpg)
Simpel og intuitiv konfigurationshistorie!
![Page 28: Rebus er ingen gåde](https://reader033.vdocuments.pub/reader033/viewer/2022052602/559e29aa1a28abfe0b8b4610/html5/thumbnails/28.jpg)
Få, velvalgte features!
![Page 29: Rebus er ingen gåde](https://reader033.vdocuments.pub/reader033/viewer/2022052602/559e29aa1a28abfe0b8b4610/html5/thumbnails/29.jpg)
Ingen doodleware!
![Page 30: Rebus er ingen gåde](https://reader033.vdocuments.pub/reader033/viewer/2022052602/559e29aa1a28abfe0b8b4610/html5/thumbnails/30.jpg)
Rebus Core kun afhængig af .NET 4 BCL!
![Page 31: Rebus er ingen gåde](https://reader033.vdocuments.pub/reader033/viewer/2022052602/559e29aa1a28abfe0b8b4610/html5/thumbnails/31.jpg)
Integration m. 3.partslibs via små, fokuserede assemblies!
![Page 32: Rebus er ingen gåde](https://reader033.vdocuments.pub/reader033/viewer/2022052602/559e29aa1a28abfe0b8b4610/html5/thumbnails/32.jpg)
De bedste fejlbeskeder!
![Page 33: Rebus er ingen gåde](https://reader033.vdocuments.pub/reader033/viewer/2022052602/559e29aa1a28abfe0b8b4610/html5/thumbnails/33.jpg)
Lav friktion!
![Page 34: Rebus er ingen gåde](https://reader033.vdocuments.pub/reader033/viewer/2022052602/559e29aa1a28abfe0b8b4610/html5/thumbnails/34.jpg)
Rebus!• Version 0.11.1-alpha!• Ikke længere ~ 400 linjer!
![Page 35: Rebus er ingen gåde](https://reader033.vdocuments.pub/reader033/viewer/2022052602/559e29aa1a28abfe0b8b4610/html5/thumbnails/35.jpg)
Rebus!• Apache License v. 2!• Kode på GitHub:
http://github.com/mookid8000/Rebus !
![Page 36: Rebus er ingen gåde](https://reader033.vdocuments.pub/reader033/viewer/2022052602/559e29aa1a28abfe0b8b4610/html5/thumbnails/36.jpg)
Asger Hallas
@asgerhallas
Rasmus Kromann-‐Larsen @rasmuskl
Contributors!
Dig?
![Page 37: Rebus er ingen gåde](https://reader033.vdocuments.pub/reader033/viewer/2022052602/559e29aa1a28abfe0b8b4610/html5/thumbnails/37.jpg)
Rebus!• install-package rebus –pre!• evt. via!– rebus.castle.windsor!– rebus.structuremap!– rebus.mongodb!– rebus.ravendb!– rebus.log4net!– (...)!
![Page 38: Rebus er ingen gåde](https://reader033.vdocuments.pub/reader033/viewer/2022052602/559e29aa1a28abfe0b8b4610/html5/thumbnails/38.jpg)
Eksempel!• Lillebitte kommunikation
mlm. 2 processer!
![Page 39: Rebus er ingen gåde](https://reader033.vdocuments.pub/reader033/viewer/2022052602/559e29aa1a28abfe0b8b4610/html5/thumbnails/39.jpg)
Eksempel!• Et vaskeægte
integrationsscenarie!
![Page 40: Rebus er ingen gåde](https://reader033.vdocuments.pub/reader033/viewer/2022052602/559e29aa1a28abfe0b8b4610/html5/thumbnails/40.jpg)
![Page 41: Rebus er ingen gåde](https://reader033.vdocuments.pub/reader033/viewer/2022052602/559e29aa1a28abfe0b8b4610/html5/thumbnails/41.jpg)
![Page 42: Rebus er ingen gåde](https://reader033.vdocuments.pub/reader033/viewer/2022052602/559e29aa1a28abfe0b8b4610/html5/thumbnails/42.jpg)
![Page 43: Rebus er ingen gåde](https://reader033.vdocuments.pub/reader033/viewer/2022052602/559e29aa1a28abfe0b8b4610/html5/thumbnails/43.jpg)
![Page 44: Rebus er ingen gåde](https://reader033.vdocuments.pub/reader033/viewer/2022052602/559e29aa1a28abfe0b8b4610/html5/thumbnails/44.jpg)
![Page 45: Rebus er ingen gåde](https://reader033.vdocuments.pub/reader033/viewer/2022052602/559e29aa1a28abfe0b8b4610/html5/thumbnails/45.jpg)
![Page 46: Rebus er ingen gåde](https://reader033.vdocuments.pub/reader033/viewer/2022052602/559e29aa1a28abfe0b8b4610/html5/thumbnails/46.jpg)
Hvad nu?!
Battle-hardening!Distributør!Gateway!
(+ det løse)!
![Page 47: Rebus er ingen gåde](https://reader033.vdocuments.pub/reader033/viewer/2022052602/559e29aa1a28abfe0b8b4610/html5/thumbnails/47.jpg)
![Page 48: Rebus er ingen gåde](https://reader033.vdocuments.pub/reader033/viewer/2022052602/559e29aa1a28abfe0b8b4610/html5/thumbnails/48.jpg)
Mogens Heller Grabe!!!!
[email protected]!@mookid8000!
http://mookid.dk/oncode!
Tak for opmærksomheden!!
![Page 49: Rebus er ingen gåde](https://reader033.vdocuments.pub/reader033/viewer/2022052602/559e29aa1a28abfe0b8b4610/html5/thumbnails/49.jpg)
Evaluering: hAp://bit.ly/cd2012c4
![Page 50: Rebus er ingen gåde](https://reader033.vdocuments.pub/reader033/viewer/2022052602/559e29aa1a28abfe0b8b4610/html5/thumbnails/50.jpg)
Image credits!• Lyserød pistol: http://www.desantisholster.com/desantis-blog/girl-meets-gun !• Plastikkæder: http://www.stanchionwholesaler.com/products/chain/mc_000 !• Trollface: http://www.thebuzzmedia.com/troll-face-high-resolution/ !• Eat SOAP: http://narwhaler.com/img/b7/h/eat-soap-b7HC4R.jpg !• Just soap:
http://kinlane-productions.s3.amazonaws.com/api-evangelist/soap.gif !