For those interested in the technical aspects, here's a summary of the various bits and pieces:
- The solution starts with receiving a continuous stream of NOTAMS from SCDS, published via a JMS (Java Messaging Service). I implemented this piece in Java (a language I'd written in only very occasionally in the past -- many thanks to the FAA team for their jump-start sample code, showing how it's done). To get back into my comfort zone (i.e., out of Java into something else), I implemented (in the Java code) a simple mechanism to channel the JMS messages into an AWS SQS (Amazon Web Services Simple Queuing Service) queue. The simple Java app is running continuously on the main FlyLogical app server (no additional server resources required).
- I then wrote an AWS Lambda function (in C# dotnet core 2.1) to process each message from the SQS queue into an existing FlyLogical SQL database (hosted on the Microsoft Azure cloud). I made use of the built-in triggering mechanism which enables an AWS SQS queue to automatically call the Lambda function whenever a new message arrives.
- Finally, I augmented the existing RESTful API services (used across the current FlyLogical apps) to retrieve on-demand the NOTAMS from the SQL database and serve them up to the apps in similar (XML) format as AIDAP.
This approach allowed for maximal code re-use and minimal code new build.