Challenge Overview
At TopCoder, Informix is the only central place where all applications converge, we keep doing several of these log tables, triggers, polling processes, etc, to detect events in Informix. This is labor intensive, and keeps adding more and more load to Informix. We want to break this pattern and offload some of this processing to other pieces of our architecture.
Specifically we now have RabbitMQ as our internal events bus. Ideally we'd like to be able to write triggers in Informix that would create events in RabbitMQ.
For this challenge, we'd like to seek the possiblity. Like for other databases allow the invocation of native code from triggers and stored procedures.
This PoC challenge would like to figure out the way to create a informix UDR by using C, which will monitor the project table, and when change happens to a record in project table it will sends a message to a RabbitMQ queue.For this challenge, we'd like to seek the possiblity. Like for other databases allow the invocation of native code from triggers and stored procedures.
Detail Requirements
- Create the UDR using C that will monitoring the project table and send out the message to a RabbitMQ queue.
- For the message, it can be simple a json representation of the changed record.
- Document the steps to deploy the UDR and test the functionality
Testing Environment
We have a Docker image with informix installed, you can use that for testing purpose. Please use the following steps after you installed the Docker Tools.
https://github.com/appirio-tech/tc-common-tutorials/tree/master/docker/informix
https://github.com/appirio-tech/tc-common-tutorials/tree/master/docker/informix
The password for the informix user is 1nf0rm1x
About RabbitMQ
Please use https://hub.docker.com/_/rabbitmq/ for testing.
Final Submission Guidelines
- PoC solution to have informix send messages to RabbitMQ queue- Deployment Guide and Verification Steps