Reuben Bond Profile Banner
Reuben Bond Profile
Reuben Bond

@reubenbond

Followers
5,673
Following
1,183
Media
1,041
Statuses
10,740

Distributed Systems, Databases, Cloud Programmability, .NET Aspire, @msftorleans @Microsoft

Redmond, WA
Joined July 2009
Don't wanna be here? Send us removal request.
Explore trending content on Musk Viewer
@reubenbond
Reuben Bond
9 years
Most JS/Python/Ruby apps...
136
13K
11K
@reubenbond
Reuben Bond
2 years
@ParikPatelCFA Voldemort was so hard to kill because he split his birth certificate into 8 NFTs and threw away the keys
@ParikPatelCFA
Dr. Parik Patel, BA, CFA, ACCA Esq.
2 years
If you murder someone they’re still alive as long as you have their birth certificate
Tweet media one
614
2K
19K
5
77
645
@reubenbond
Reuben Bond
3 years
Ever been admonished by a much-higher-up at your company for something you tweeted? I once tweeted a joke about how Microsoft ❤️ reorgs and got a "not cool" email from someone whose boss reports to Satya He thought I was leaking info on an upcoming reorg I knew nothing about
45
20
600
@reubenbond
Reuben Bond
3 months
Here's something @BehluliLedjon & I have been working on: locality-aware repartitioning for @msftorleans ! It shuffles grains between nodes in the cluster to reduce cross-network calls, resulting in 30% to 110% throughput improvements in early benchmarks.
15
85
451
@reubenbond
Reuben Bond
10 months
For .NET devs, @msftorleans gives you this. Efficient in-proc calls when you're in-proc, fast RPC when you're not. Orleans is battle tested, modern, and used in-production for some of Microsoft's largest svcs. It goes further, supporting versioning, rolling upgrade, & much more
@kelseyhightower
Kelsey Hightower
10 months
Towards Modern Development of Cloud Applications "microservices conflate logical boundaries (how code is written) with physical boundaries (how code is deployed)." "we propose a different programming methodology" "Our implementation reduces application latency by up to 15x and
Tweet media one
98
418
2K
21
71
341
@reubenbond
Reuben Bond
4 years
Microsoft Mesh is built on Orleans! Great work, everyone involved!
8
47
342
@reubenbond
Reuben Bond
3 years
Here's an entire @msftorleans app using the new Minimal APIs
Tweet media one
7
46
321
@reubenbond
Reuben Bond
4 years
Tweet media one
4
60
278
@reubenbond
Reuben Bond
3 years
High volume console logging on .NET can take down your app. The Console logger uses a dedicated thread to pump logs from a queue to the console. That queue has a max length of 1024 items. When that limit is hit, all threads which are logging will block and GG your app
Tweet media one
10
50
277
@reubenbond
Reuben Bond
10 months
.NET Aspire support for Orleans! Here's a minimal app @msftorleans #dotnet
Tweet media one
Tweet media two
7
47
264
@reubenbond
Reuben Bond
10 months
The cloud application model is at the center of every .NET Aspire app. It looks like this:
Tweet media one
12
29
227
@reubenbond
Reuben Bond
5 years
We want .NET devs to write clear, concise code BUT Guidance tells people to suffix half their methods with "Async" 🤔
41
21
214
@reubenbond
Reuben Bond
3 years
If you're curious how Orleans decides which hosts monitor which others, it's rather simple: Servers are arranged into a ring based on the hash of their identity, and each server monitors its N successors around the ring.
Tweet media one
Tweet media two
7
38
211
@reubenbond
Reuben Bond
5 years
Absent-mindedly wrote "await TimeSpan.FromSeconds(1);" Instead of fixing my mistake, we can make TimeSpan awaitable using an extension method 😱
Tweet media one
18
38
203
@reubenbond
Reuben Bond
6 years
Performance Tuning for .NET Core - new post with some tips & tricks to eke the most out of those gigahertz
6
92
206
@reubenbond
Reuben Bond
6 years
First day! #MicrosoftLife
Tweet media one
17
4
194
@reubenbond
Reuben Bond
2 years
Nice dev tooling won't push the envelope for cloud app development when the core problem is programming models that leave developers unequipped to manage concurrency, state, fault tolerance, and scalability. There's more to Developer Experience than tooling.
7
31
194
@reubenbond
Reuben Bond
4 years
If you're writing #dotnet Source Generators and want to use Roslyn APIs to build the syntax, @linqpad can save you heaps of time. It will even generate the syntax calls for you (see the button at the bottom)
Tweet media one
8
34
165
@reubenbond
Reuben Bond
5 years
A fast (😉), standalone Write-Ahead Log implementation in .NET! This can be used for building many kinds of databases and distributed systems without relying on the rest of the FASTER Key-Value store
1
54
161
@reubenbond
Reuben Bond
7 years
Startup idea: ♦️Buy low grade microservices for cheap ♦️Bundle them together to diversify risk ♦️Split the result & sell them as A-grade
7
58
155
@reubenbond
Reuben Bond
6 years
I'm moving to Redmond to join the @msftorleans team full-time! 😁
26
2
150
@reubenbond
Reuben Bond
2 months
I pushed my durable workflows PoC branch: C#'s async/await is very extensible, allowing me to introduce a new type, DurableTask<T> which allows most of the code to be quite clean. Orleans' RPC understands how to handle methods returning DurableTask<T>, too
11
33
155
@reubenbond
Reuben Bond
1 year
Economics eventually prevails over Resume-Driven Development
@kelseyhightower
Kelsey Hightower
1 year
The Amazon Prime Video team was able to reduce cost by moving from Serverless backed by Lambda to monoliths running on VMs. "Moving our service to a monolith reduced our infrastructure cost by over 90%. It also increased our scaling capabilities."
Tweet media one
204
2K
8K
9
33
136
@reubenbond
Reuben Bond
1 year
Dist Sys Twitter: I'm looking for papers & posts about databases built atop cloud blob storage (or any disaggregated storage system). I know of Foundation DB & @warpstream_labs (Kafka API backed by blob storage). Any others? Suggestions are appreciated!
34
22
134
@reubenbond
Reuben Bond
3 years
Microsoft's internal IT department likes to make terminal windows flash on your desktop occasionally, just to normalize the idea of unknown scripts running on your desktop
12
2
121
@reubenbond
Reuben Bond
3 years
This talk is focused on how the RPC & Serializer in Orleans work and how they are designed for high performance. Rather than being Orleans 101, it's a perf-focused look under the hood. Some examples 👇
@konradkokosa
Konrad Kokosa
3 years
😍Lead for Microsoft Orleans @ReubenBond about "A Deep Dive into Orleans"
Tweet media one
1
19
95
5
38
117
@reubenbond
Reuben Bond
9 months
Thrift shop score!
Tweet media one
7
4
115
@reubenbond
Reuben Bond
3 years
Orleans includes a powerful, flexible, high-perf, version-tolerant serializer & RPC. Serializer perf:
Tweet media one
4
15
115
@reubenbond
Reuben Bond
3 years
To be clear, I knew nothing but was just very enthusiastic and interested. I deleted the tweet as soon as I was notified. Still, a lesson learned, I suppose: leave the open speculation up to people who don't work for the company
5
0
111
@reubenbond
Reuben Bond
3 years
Overhauled the sample projects for @msftorleans and gave them a top-level README:
Tweet media one
Tweet media two
Tweet media three
Tweet media four
8
36
112
@reubenbond
Reuben Bond
6 months
Quick demo of Aspire, which lets you use C# to describe an app's services + deps & how they relate so it can wire up observability, debugging, integration testing, service discovery, config, secrets, provisioning, deployment and a dashboard. The core idea is simple and powerful
3
19
109
@reubenbond
Reuben Bond
3 years
When I was a contractor working remote from Australia, I tweeted my excitement/speculation about something called "Cosmos DB" that I discovered by scouring publicly available Build session info and got told off. Thankfully this hasn't limited my career (yet 😉)
1
0
103
@reubenbond
Reuben Bond
4 years
BenchmarkDotNet is such a fantastic library. What a huge boon to the .NET ecosystem.
2
11
106
@reubenbond
Reuben Bond
4 years
@RogerAlsing @J_Motoki Some people don't appreciate just how fragile life is. Reminds me of a guy from my hometown who thought it would be a good idea to drive up the middle of Australia solo, unprepared, without telling anyone. He died.
4
0
95
@reubenbond
Reuben Bond
10 months
Build cloud apps in C# with #NoYAML . Launch your multi-project, multi-container apps with one command. Run integration tests locally without hassle. Plus, cloud provisioning, deployment, & observability (locally via the dashboard, in the cloud with #OpenTelemetry )
@davidfowl
David Fowler
10 months
This is what I’ve been spending time on for the last couple of months. I’m so proud of the team for working hard on this first preview release. Still lots of work to do, but it’s pretty darn cool 😎 #dotnet #CloudNative
68
221
1K
4
17
101
@reubenbond
Reuben Bond
1 year
Azure Storage uses Reed Solomon codes on cold data to reduce storage costs while maintaining resiliency. Once a segment has been sealed, it's a candidate for erasure coding. Hot data is stored without erasure coding, replicated to at least 3 locations
1
23
101
@reubenbond
Reuben Bond
2 years
@davidfowl Some drawings made with for my @msftorleans talks
Tweet media one
Tweet media two
Tweet media three
Tweet media four
4
11
99
@reubenbond
Reuben Bond
3 years
Orleans' Virtual Actor model is being picked up by more and more frameworks and services
@RogerAlsing
Roger Johansson
3 years
. @Cloudflare Durable Objects goes virtual actors: The previous reentrant model is now replaced with an actor-like behavior where each function runs to completion before executing the next. Also, storage is now cached in mem. I have to give this a try :)
0
1
23
5
23
89
@reubenbond
Reuben Bond
4 years
I'll be talking about Orleans at Microsoft!
@davidfowl
David Fowler
4 years
5
38
168
6
9
92
@reubenbond
Reuben Bond
5 years
@davidwengier This is the absolute worst
Tweet media one
11
23
90
@reubenbond
Reuben Bond
4 years
Serverless Event-Stream Processing over Virtual Actors
Tweet media one
7
18
87
@reubenbond
Reuben Bond
6 years
I initially thought System.CommandLine might be yet another args parsing lib. Then I saw a demo of it. It's surprisingly cool. You get a strongly-typed Main(..) with tab completion and a lot of other goodness with very little effort
3
31
89
@reubenbond
Reuben Bond
1 year
Retries without idempotence 😬
Tweet media one
3
17
88
@reubenbond
Reuben Bond
4 years
Nice, thanks @VisualStudio team! In VS 16.9.0 you will be able to see generated source in the file tree.
Tweet media one
4
11
89
@reubenbond
Reuben Bond
5 years
My mum was a programmer. Typical kid me wanted to make video games. I opened up an exe in Notepad and asked her to read it. I had no idea. She gave me her old BASIC book & I eventually got a copy of QBASIC on 💾 & have been happily coding since. Thanks Mum ♥️ (pic Dec 15 1984)
Tweet media one
6
8
89
@reubenbond
Reuben Bond
4 years
@IndiciaObscure @RogerAlsing @J_Motoki Australia has only 24.6m people and is the size of the contiguous USA. The outback is especially sparsely populated. He apparently strayed from the road to find sticks to un-bog his car and was bitten by a snake, according to a note he left
3
0
76
@reubenbond
Reuben Bond
4 years
Built on Microsoft Orleans! @msftorleans
@markrussinovich
Mark Russinovich
4 years
Azure Quantum is now in public preview:
9
164
432
3
18
80
@reubenbond
Reuben Bond
2 years
I'm interested in books/resources on the design of search/indexing systems. Recommendations appreciated
8
11
80
@reubenbond
Reuben Bond
5 years
Loud & clear, Tesla
Tweet media one
1
7
77
@reubenbond
Reuben Bond
3 years
I guess @msftorleans is the app framework of choice for building the metaverse - Azure Digital Twins and Microsoft Mesh are both built with Orleans!
@fxshaw
Frank X. Shaw
3 years
Satya Nadella re: the metaverse: "Across the Microsoft Cloud – from Azure IoT to Azure Digital Twins, to Connected Spaces, and Microsoft Mesh – we are building the metaverse platform for you to build upon."
5
15
84
4
19
76
@reubenbond
Reuben Bond
4 years
If a unit test fails, then it wasn't loyal anyway and you don't need that in your life. Delete it.
5
16
73
@reubenbond
Reuben Bond
4 years
A system was failing consistently during load tests. Looking at a memory dump, ~1000 threads were waiting on a simple, short lock - a lock convoy. Removing a call which was setting the ThreadPool's min threads to 1000 alleviated the issue & let them scale to much higher RPS
3
6
76
@reubenbond
Reuben Bond
5 years
🎉 @msftorleans is the top trending C# project this month! So close to 6k⭐!
Tweet media one
1
11
71
@reubenbond
Reuben Bond
6 months
You can avoid 2PC by migrating the objects involved in a transaction to a single server for the duration of the transaction. If the graph partitions well, this should enable great perf. There are surely papers exploring this idea, do any come to mind?
@MarcJBrooker
Marc Brooker
7 months
If we draw database rows as points, and add edges between rows that appear in the same transaction, the resulting graph is a great way to think about potential scalability. The more you can cut the graph up without crossing edges, the easier the workload is to scale.
Tweet media one
17
63
463
7
11
72
@reubenbond
Reuben Bond
6 years
Pretty freaking pumped about this! cc @davidfowl Orleans hosted on Kestrel early PoC Client is a stock Orleans client
Tweet media one
2
7
70
@reubenbond
Reuben Bond
8 months
Has anyone attempted the 1 Billion Row Challenge in C# yet?
@gunnarmorling
Gunnar Morling 🌍
8 months
📢 "The One Billion Row Challenge" How fast can YOU aggregate 1B rows using modern #Java ? Grab your threads, flex your SIMD, and kick off 2024 true coder style by joining this friendly little competition. Submissions accepted until Jan 31. 👉
Tweet media one
69
232
1K
7
7
69
@reubenbond
Reuben Bond
1 year
Around 70% of traffic in Azure is RDMA. Azure Storage is powered by RDMA between clients and frontends and within the clusters.
4
13
69
@reubenbond
Reuben Bond
8 months
⚡Asynchronous: acknowledgement & completion are distinct events 🛑 Synchronous: acknowledgement & completion are the same event
Tweet media one
5
8
69
@reubenbond
Reuben Bond
3 years
Constantly shooting down ideas is one way people suck the air out of a room. Being overly exuberant and immediately taking charge is another. Neither of those gives others space to grow and lead
3
4
69
@reubenbond
Reuben Bond
4 years
Tales of the Tail: Hardware, OS, and Application-level Sources of Tail Latency
Tweet media one
Tweet media two
1
17
70
@reubenbond
Reuben Bond
4 years
Hagar is coming along nicely. Started optimizing the deserialization path last night. I have a few more tricks with intrinsics to implement and some other things. It's v. fast while also being version tolerant, and supporting polymorphism and cyclic graphs is👌
Tweet media one
4
11
70
@reubenbond
Reuben Bond
4 years
Wrote some recommendations on using HttpClient. I am not an expert here, though. So, anything you would change/add/remove?
Tweet media one
9
16
66
@reubenbond
Reuben Bond
7 years
Tweet media one
1
21
62
@reubenbond
Reuben Bond
1 year
Most application developers likely dont understand ACID transactions well, but I wonder how many believe transactions are important for preventing bugs anyway. What do you think?
3
6
64
@reubenbond
Reuben Bond
5 years
Orleans 2.3.0 makes it easier to co-host with by adding support for the new HostBuilder ( Core 3.0) and allowing you to inject IGrainFactory into your controllers
@msftorleans
Microsoft Orleans
5 years
v2.3.0 is out with hosting APIs aligned with Core, EventHub dependency update, automatic cleanup of cluster membership table, hosted client enabled by default, Linux CPU/memory statistics, and other improvements and fixes.
1
33
59
4
20
63
@reubenbond
Reuben Bond
4 months
.NET Aspire in a nutshell 👇 #dotnet #aspire
Tweet media one
3
9
63
@reubenbond
Reuben Bond
7 years
Anyone who's interested in learning about Distributed Systems should read @martinkl 's book:
3
21
61
@reubenbond
Reuben Bond
2 years
Snapper - a new transaction processing system built on @msftorleans ! 🎉 Paper: Hybrid Deterministic and Nondeterministic Execution of Transactions in Actor Systems from @sigmod 2022 @bonivivek @ylzhou
4
12
62
@reubenbond
Reuben Bond
9 years
@mrmcrilly @codinghorror async, but typically single thread per process. Concurrent but not parallel
6
1
60
@reubenbond
Reuben Bond
2 years
@nickchapsas .NET 6 EoL is only 6 months after .NET 7 EoL The way people treat them, you'd think there was a difference of years. I wonder if mgmt policies would change if we increased STS lifetime by 6 months so that there was no downside to picking an STS over the previous LTS
11
1
60
@reubenbond
Reuben Bond
8 months
Exactly-once or not, atomic broadcast is still impossible in Kafka - or anywhere
1
13
61
@reubenbond
Reuben Bond
5 years
C# 8 lets us write something similar to #golang 's 'defer' statement. Maybe C# 9 can make this cleaner with `using new Defer(...)` or even `using Defer(....)` and more performant by removing `IDisposable` requirement for non-ref structs
Tweet media one
7
19
56
@reubenbond
Reuben Bond
3 years
@colmmacc They tested benchmarks, i.e. short-lived programs which aren't representative of cloud workloads. Many of those programming environments include compilation, profiling, & optimization during their warmup period, which is expensive, but that cost is amortized over time
4
0
57
@reubenbond
Reuben Bond
5 years
Deleting large chunks code is the best feeling
4
4
57
@reubenbond
Reuben Bond
6 years
As a kid I once wrote to a computer magazine to ask if they could include the JDK on their cover disc because it was too big for me to download over dialup. They did 😊
5
2
56
@reubenbond
Reuben Bond
2 years
Code must be mutable because real-world applications evolve over time. If your app framework makes it difficult to modify code, that's a big problem... but developers won't see that in your demos. The same goes for concurrency, scalability, and fault tolerance.
2
4
54
@reubenbond
Reuben Bond
3 years
Debugging is a superpower, but debugging skills are lacking across the industry. Why? I don't know, but here are some common shortfalls
@davidfowl
David Fowler
3 years
Tech interviews focus so much time on writing code instead of debugging code. Debugging ability is one of the core skills I look for in more senior engineers.
80
157
2K
5
11
51
@reubenbond
Reuben Bond
8 years
This picture is just *beautiful* 🌈 Why Exceptions Should Be Exceptional - another great post by @matthewwarren
Tweet media one
1
39
53
@reubenbond
Reuben Bond
2 years
@jbogard @MadsTorgersen Wouldn't that cause a BRUH0001 warning though?
Tweet media one
3
4
52
@reubenbond
Reuben Bond
3 years
What gives you hope for the future of programming?
58
5
49
@reubenbond
Reuben Bond
10 months
@ozzioma New release in the works. Here's a preview of the Orleans + Aspire integration:
Tweet media one
3
9
51
@reubenbond
Reuben Bond
2 years
Markdown tip: you can use '1.' repeatedly for numbered lists. This lets you reorder your items later without having to update every subsequent item
Tweet media one
Tweet media two
1
6
50
@reubenbond
Reuben Bond
3 years
Tip for candidates: watch out for manipulative interviewers who try to lure you into traps
@nntaleb
Nassim Nicholas Taleb
3 years
When trying to hire someone, induce the person to say something negative about a past employer. If you succeed, stay away.
478
255
3K
2
6
49
@reubenbond
Reuben Bond
2 years
I'd like to see us unify the two: workflows and virtual actors. I have some ideas for what I consider a good programming model to accomplish that and hopefully improve upon what I consider shortcomings in the existing programming models for workflows
8
1
50
@reubenbond
Reuben Bond
3 years
Any sufficiently large distributed system is always in a state of partial failure
@ReinH
Senior Oops Engineer
3 years
fun fact: a distributed system can exhibit "partial failure", which means it can be broken and keep working. like me.
8
78
607
3
8
48
@reubenbond
Reuben Bond
2 years
The developer experience is worse today than it was just several years ago. The Cloud Native Landscape is incredibly complex. We built tools to patch over fringe problems & tools to manage the complexity those other tools introduced. It's a big, distributed ball of mud.
Tweet media one
4
6
50
@reubenbond
Reuben Bond
4 years
Here's a new Orleans sample app. Semi-realistic app with throttling, persistence, Kubernetes, Redis, and some simple application patterns
1
14
50
@reubenbond
Reuben Bond
3 years
Old keyboard (above) vs new (below). Ideally, I'd use plain key caps with no legends, but those are hard to find, so I settled for this colourful set with weird symbols
Tweet media one
Tweet media two
10
4
50
@reubenbond
Reuben Bond
1 month
Instead of losing state when a peer crashes, surviving peers are consulted to rebuild the lost partition. Since they necessarily have the information, loss is avoided. Consistency is maintained by pausing queries for recovering ranges until recovery completes.
Tweet media one
@reubenbond
Reuben Bond
1 month
I'm applying Virtual Synchrony / Vertical Paxos ideas to a new grain directory implementation for Orleans. It's dynamically range partitioned, which brings challenges, but in 700 LOC it gracefully scales out & in without data loss or consistency violations.
2
3
34
1
13
58
@reubenbond
Reuben Bond
5 years
Considering writing a post covering Tasks & TaskSchedulers in dotnet. They're often misunderstood & I feel like I can bring some clarity to some.
5
2
49
@reubenbond
Reuben Bond
7 years
I hope this performance focus in .NET leads to more data systems, like storage engines, databases, stream processing systems, full-text search engines, etc.
3
19
46
@reubenbond
Reuben Bond
1 year
How important is written communication for an engineering org?
27
3
48
@reubenbond
Reuben Bond
3 years
Writing docs for @msftorleans this week. This article is about implementation details of the task scheduler. Let me know if this is clear or if there's something which could be clarified/improved:
Tweet media one
6
9
47