Integration

October 28th, 2019

Using Azure Data Factory with the Application Insights REST API

Persisting aggregates of AppInsights data in a warehouse can be a useful means of distributing summary information or retaining monitoring data over the long term. You can automate the harvesting of these aggregates using Azure Data Factory.

July 4th, 2019

Azure Data Factory and the myth of the “code-free” data warehouse

Azure Data Factory has been much improved with the addition of data flows, but it suffers from some familiar integration platform shortcomings. The claim of enabling a “code free” warehouse may be pushing things a bit.

October 12th, 2018

Message design anti-patterns for event-driven architecture

Event-driven integration can improve the scalability, resilience and scalability of distributed applications… but this does depend on the design of your event messages…

December 13th, 2017

Entity services: when microservices are worse than monoliths

Finely-grained, entity-based services seem to be advocated by some pretty authoritative sources. This is unfortunate as they are something of an anti-pattern that can undermine many of the benefits of decomposing an monolith into micoservices.

May 16th, 2017

API management and the return of the enterprise service bus

No self-respecting integration platform is complete without an API management story these days. Is this just a RESTful return of the enterprise service bus?

November 13th, 2016

Handling Protocol Buffers backwards compatibility between versions 2 and 3 using C#

You will inevitably be pushed towards upgrading your protocol buffer messages to Proto3, particularly if you want a client that supports .Net Standard that .Net Core. This can be done, but there are a couple of speed bumps along the way.

August 13th, 2016

PolyBase import and export between Azure SQL Data Warehouse and Blob Storage

SQL Server Polybase makes it easy to load data into Azure SQL Data Warehouse by letting you define groups of files held in Azure blob storage as relational data tables.

March 23rd, 2016

API gateways and the dangers of creeping middleware scope

An API gateway can solve many generic problems in an API infrastructure, but you do need to define a clear remit and protect against creeping scope.

February 1st, 2016

Data design for event-driven architecture: autonomy, encapsulation and ordering

When you’re implementing an event-driven architecture, the design of your events is absolutely critical to realize the benefits of loose coupling.

January 18th, 2016

Informatica Cloud development best practices

Informatica Cloud is a powerful environment but a pretty unforgiving one. Here are some best practices that I have picked up from implementing the platform.

December 12th, 2015

Pragmatic REST: APIs without hypermedia and HATEOAS

If you’re not using HATEAOS then you’re not using REST. That’s true enough, but in many cases adopting HATEOAS doesn’t deliver much value beyond architectural purity.

November 26th, 2015

Comparing nServiceBus and MassTransit: Do we still need .Net integration frameworks?

Both nServiceBus and Mass Transit plugged an important gap in Microsoft’s integration landscape, but do they have a role in a future that is likely to be dominated by diverse technologies and autonomous agile teams?

October 15th, 2015

Using the REST API connector as a data source in Informatica Cloud

It can be pretty straightforward to read REST API resources using Informatica Cloud – so long as you know which levers to pull and your data is in a sympathetic format.

September 27th, 2015

REST APIs don’t need a versioning strategy – they need a change strategy

Change in an API is inevitable. Attempting to manage this change through version numbering usually creates more problems than it solves.

July 2nd, 2015

Comparing Gartner’s cloud integration leaders: Informatica, Dell Boomi and Mulesoft

Gartner’s definition of enterprise integration as a service is so wide that it can be difficult to draw any meaningful comparisons between the platforms in the “leaders” space.

February 8th, 2015

Protocol buffers for .Net: protobuf-net vs protobuf-csharp-port

Google’s open source serialization format is an efficient way of passing platform-independent and version-tolerant data between end-points. Two very different implementations have emerged for .Net.

January 4th, 2015

Why REST is not a silver bullet for service integration

REST is sometimes described as the next “evolutionary step” in service integration. The problem is that REST provides too much of a “dumb pipe” to support genuinely decoupled, fault-tolerant service integration.

December 16th, 2014

Don’t assume message ordering in Azure Service Bus

Azure Service Bus can provide first-in-first-out messaging in theory, but this is not the same as guaranteeing the order in which your messages are processed.

August 21st, 2014

Messaging shouldn’t be used for queries

When developers first start using messaging they can be tempted to use it as a brand new hammer for every nail. Messaging brings a lot to the party, but it isn’t necessarily a suitable transport for fast, synchronous query processing.

July 22nd, 2014

Using a tolerant reader for web service integrations in .Net

Using version tolerant readers can help you to cope with changes to service contracts though this does come at the expense of a weaker contract. The approach is more appropriate for fluid services that are prone to frequent change.

February 6th, 2014

Comparing Web API 2 and WCF for building services on HTTP and REST

On the face of it, Microsoft took WCF’s promise of “one implementation, any protocol” and shot it in the head with ASP.NET Web API. Now that the Web API has matured a little it is easier to see them as complimentary technologies that deliver very different types of service.

July 16th, 2013

Managing change and version control for service interfaces

Change is an inevitable and even desirable part of distributed development. Managing the impact of that change is the difficult part, particularly when change affects the service interfaces that bind a distributed platform together.

June 4th, 2013

Sharing APIs in an organisation: challenges and pitfalls

Sharing services and APIs can appeal to a desire to reduce duplication and improve development efficiency. It’s a worthy ambition though the journey there can be littered with costly traps for the unwary.

April 22nd, 2013

Writing a brokered messaging client for Azure Service Bus that is production-ready

Azure’s Brokered Message API provides a basic set of methods that make it easy to start sending and receiving messages through the Azure Service Bus. The problem is that it doesn’t do much to provide some of the basic scaffolding required by a serviceable messaging client.

February 22nd, 2013

A shared database is still an anti-pattern, no matter what the justification

Shared databases risk turning into performance bottlenecks that encourage close-coupling and create a single point of failure. There’s no justification for using them to integrate processes and applications.

September 21st, 2012

Contract-first web service development using WCF and .Net 4.5

Contract first service development in .Net has always been hampered by the limited availability of any appropriate tooling. The new Contract-First tool in Visual Studio 2012 is only a partial solution.