Building an Event-Driven Ad Engine with Snowflake OpenFlow and Pub/Sub