Serverless Computing Presentation

I’m looking forward to presenting this weekend at #SoCalCodeCamp in Los Angeles on “Serverless Architecture & Computing using Microsoft Azure”. I will be co-presenting with Udy Sarma of Microsoft. We’ll be talking about Azure functions, Azure Logic Apps, and more. Lots of demos. We’ll be there bright and early, we’re on at 8:45AM.

For a full schedule of this Code Camp, see

Hope to see you there!


BizTalk Server 2016 Launches

BizTalk Server 2016 has launched!

The official Microsoft blog post is here.

You can find a list of what’s new here.

There is a lot of good stuff in this new release. If I had to pick my two favorites, I would say the Logic App adapter and the support for SQL Server 2016 AlwaysOn Availability Groups (which means we can now do high availability BizTalk on Azure IaaS).

Chronologically, BizTalk Server has now been around for 16 years, and with Microsoft’s 10 year support policy BizTalk Server 2016 will be supported until (at least) 2026. I believe this makes it one of Microsoft’s longest-lived products, and for good reasons.



Logic Apps out of preview!

Today marks an important milestone in the world of Integration: Azure Logic Apps have reached general availability (they are no longer preview).

Congrats to the team on their excellent work and efforts.

Read about it at:

Let the fun begin Winking smile


Inspecting HTTP headers in an Azure Logic App


At the time this was written, Azure Logic Apps were still in Preview. I was on a project where we needed to use an HTTP trigger for a logic app, but we didn’t want this endpoint to be exposed to the world. However, there was no way to lock down the endpoint.

So, I needed to come up with a workaround. The workaround consisted of inspecting the HTTP request headers for a specific header, and making sure it was the correct value. This was a little tricky to implement so I thought I’d do a blog post about it… and here we are!

The resulting POC logic app looked like this:


And here’s the code behind:


What the logic app does is first inspect the specific header (the “expression” line), and if the header value matches the key as shown, then it posts all of the request HTTP headers to a If it fails validation, then the string “No way!” is posted to the

I love the power of Logic Apps!


Logic Apps: Where did my Connectors go?

This week we got an exciting refresh to the Logic Apps preview, including a totally new designer. However, missing is the pane on the right from the old designer that showed API Apps in the resource group, and the Marketplace.

Instead, you pick a connector from a dropdown in the design surface itself, for example:


However, what you’ll see there is (for now at least) a subset of the available connectors, the ones which are now Managed APIs (V2 API Apps). Are the others all gone now? Nope. Here’s a blog post on how you can still invoke them:

Works like a charm, and I really like the HTTP+Swagger shape which I used to call a custom API app I had written.

Lastly, if you want to watch a 30 minute webcast about the new designer I would strongly recommend this:



Logic Apps Refresh is now Live!

The Logic Apps changes have now been deployed and should be available globally for all new Logic Apps in the public portal.  This brings a brand new designer, managed API connection for fast build and easy deployment, new connectors (like Dynamics CRM), and much more. 

You can find out more about it this Thursday at


Logic App Service Bus connector caveat

I’m working on a project where we are building an ESB on the Microsoft Azure platform.

We ran into a little “quirk” that ended up costing us some time, so I thought I’d put a post together for the benefit of anyone else that may run into it. Granted you need to be doing things in a very specific manner in order to experience it, but we managed!

We have an on-ramp service that does a variety of things. When it is done, it posts the incoming message to a Service Bus topic (determined by the Rules service). The idea is that there would be subscriber(s) that would pick up the message. The problem was that although the message in the on-ramp was valid XML, the message as received by a Service Bus connector in my Logic App was receiving invalid XML. Why?? What’s up with this?

It turned out that our wonderful valid XML message was being inexplicably prefixed with the string @\u0006string\b3\u000b”, and suffixed with some extraneous characters too.



After much digging and looking around, I came across a post that explained it. Our core issue was the way were creating a brokered message (seems like a perfectly valid thing to do), and once we switched to the stream approach to message creation listed in the blog post, everything started working as expected.

You can find details here in this post by Bruno Câmara:

Thanks Bruno!