Categories: Cortana

Reactive Computing at the Heart of Cortana

In my QCon talk last year I talked, amongst many other things, about the need to react to the world’s information streams in near-realtime. The Bing Platform that powers Cortana and the Windows Phone OS were designed and implemented to support that vision.

At the very core of each Windows Phone 8.1 device is a stream processing service based on the algebra of Reactive Extensions. We actually use LINQ/Rx to write the expressions against that service. Every time you create a reminder of the form “remind me to say congratulations when I talk to Jim” or “when I get home, remind me to take out the garbage”, we actually create a standing Rx query on the phone that reacts to events such as “incoming call”, “text message conversation opened”, “email opened”, “geofence broken”, etc. By reacting to such events and then applying the appropriate filters, projections, and other operators, we take the applicable action (e.g. notify the user) in the appropriate context.

We have the equivalent service in the cloud as well, of which I am extremely proud. The team and our collaborators in MSR have done an amazing job. The cloud version is distributed across 100s of machines and few data centers. It’s a reliable and scalable version of an Rx evaluation engine. We built an abstraction layer that completely hides the implementation details, distribution logic, management, reliability, etc. of the service. Developers of Cortana experiences write Rx expressions against the world’s information streams in a declarative manner, using a very familiar programmatic experience. We have added capabilities and abstractions around the Rx framework we believe developers will like. Bart De Smet mostly and I will give more details in the near future. Together with Mike Andrews we recently gave a sneak peak during a Channel 9 interview. The video below about how the Bing Platform supports Cortana concentrated on our ability to process and react to huge amounts of information in near-realtime.

With a scalable reactive computing platform, Cortana can observe changes to the world’s information on our users’ behalf:

  • Flight status changes (e.g. delayed, landed);
  • Weather alerts for current or specific location;
  • Traffic to next appointment or during the usual commute hours;
  • News alerts;
  • Favorite sport team score updates;
  • And much much more that is coming.

We can handle 100s of millions concurrent standing queries evaluated on behalf of 10s of millions of users, hundreds of information streams, and a huge number of events per day. We are observing how this brand new system behaves. We will continue to add new information streams, expand the range of supported scenarios, and the number of supported users in the very near future.

This is just the beginning. The future is reactive! 🙂

Savas Parastatidis

Savas Parastatidis works at Amazon as a Sr. Principal Engineer in Alexa AI'. Previously, he worked at Microsoft where he co-founded Cortana and led the effort as the team's architect. While at Microsoft, Savas also worked on distributed data storage and high-performance data processing technologies. He was involved in various e-Science projects while at Microsoft Research where he also investigated technologies related to knowledge representation & reasoning. Savas also worked on language understanding technologies at Facebook. Prior to joining Microsoft, Savas was a Principal Research Associate at Newcastle University where he undertook research in the areas of distributed, service-oriented computing and e-Science. He was also the Chief Software Architect at the North-East Regional e-Science Centre where he oversaw the architecture and the application of Web Services technologies for a number of large research projects. Savas worked as a Senior Software Engineer for Hewlett Packard where he co-lead the R&D effort for the industry's Web Service transactions service and protocol. You can find out more about Savas at https://savas.me/about

Recent Posts

BrainExpanded – The Timeline

See "BrainExpanded - Introduction" for context on this post. Notes and links Over the years,…

2 days ago

BrainExpanded – Introduction

This is the first post, in what I think is going to be a series,…

2 days ago

Digital twin follow up

Back in February, I shared the results of some initial experimentation with a digital twin.…

1 week ago

Digital Twin (my playground)

I am embarking on a side project that involves memory and multimodal understanding for an…

10 months ago

“This is exactly what LLMs are made for”

I was in Toronto, Canada. I'm on the flight back home now. The trip was…

1 year ago

AI is enhancing me

AI as an enhancer of human abilities.

1 year ago