
Ilustration courtesy of ChatGPT
This four-part blog series from 27Global provides an overview of an internal project to plan, design, and implement an AI-driven solution. Follow along to learn about our use case, our challenges, and our successes.
Part 2: Building the Backbone & Fighting the Tools
With planning behind us, the second phase was all about setting up infrastructure, developing Rivet plugins, and testing early models.
We stood up a full Azure-based environment, including:
– App Services for compute
– Cosmos DB as our vector store
– Key Vault, VNet, and Terraform to manage deployment
Thanks to Dimitri’s speed, core infra was live early in the phase.
Rivet didn’t support Cosmos DB, so Jesse built a custom plugin from scratch. Local tests worked, and the plan was to publish to NPM for internal and client re-use.
This effort also led us to use Chroma as a stand-in for embedding functionality while Rivet integration caught up.
Early Pain Points:
– Draw.io XML was ugly — flat, unordered, hard to manipulate programmatically
– Rivet lacked merge control, causing workflow conflicts during plugin authoring
– Gemini outperformed OpenAI in raw XML handling, but was incompatible with Rivet
Testing hit a bottleneck as token limits began truncating responses. Manual diagram reviews were required to validate outputs, slowing velocity.
Check back next week for Part 2: Real Progress, Real Friction
About the Author

John Marney is a visionary director at 27Global, boasting a rich tapestry of experience in steering businesses towards digital excellence. With a keen eye for innovative solutions, John has played a pivotal role in leveraging cutting-edge technologies to empower clients in their digital transformation journey. His passion for bridging the gap between business objectives and technological advancements continues to drive 27Global’s commitment to delivering unparalleled software, cloud, and data solutions.
Want to learn more? Contact us at info@27global.com


