<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: kenkondo</title>
    <description>The latest articles on DEV Community by kenkondo (@kenkondo).</description>
    <link>https://dev.to/kenkondo</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F500305%2F2bdb62a7-89f7-4d58-a304-778bcc0ff014.png</url>
      <title>DEV Community: kenkondo</title>
      <link>https://dev.to/kenkondo</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kenkondo"/>
    <language>en</language>
    <item>
      <title>Hermes Lakehouse Engineer: An Agentic Databricks Data Engineering Teammate</title>
      <dc:creator>kenkondo</dc:creator>
      <pubDate>Thu, 28 May 2026 06:56:09 +0000</pubDate>
      <link>https://dev.to/kenkondo/hermes-lakehouse-engineer-an-agentic-databricks-data-engineering-teammate-42g1</link>
      <guid>https://dev.to/kenkondo/hermes-lakehouse-engineer-an-agentic-databricks-data-engineering-teammate-42g1</guid>
      <description>&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;I built Hermes Lakehouse Engineer, an agentic Databricks data engineering experience. It turns a source contract and sample feed into a repeatable lakehouse delivery run: implementation planning, Databricks bundle artifacts, live Delta tables, quality checks, Unity Catalog-style governance metadata, lineage, release notes, and workspace evidence.&lt;/p&gt;

&lt;p&gt;The project has a local-first fallback for demo reliability, and the live Databricks path creates real bronze, silver, and gold Delta tables in a serverless workspace job. The point of the build is to show Hermes Agent behaving like a practical data engineering teammate: it carries the work from intake to proof instead of stopping at a generated notebook.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;The demo walks through a new vendor sales feed becoming a governed Lakehouse data product:&lt;/p&gt;

&lt;p&gt;Demo video: &lt;code&gt;docs/demo_assets/hermes_lakehouse_engineer_demo.mp4&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Recommended screenshots:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Databricks job run showing &lt;code&gt;TERMINATED SUCCESS&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Live table list under &lt;code&gt;workspace.sales&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Local Hermes delivery loop output&lt;/li&gt;
&lt;li&gt;Governance documentation packet&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The local demo command is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;python&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;scripts/run_agentic_delivery.py&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It writes a timestamped local evidence packet under &lt;code&gt;runs/&lt;/code&gt; so reviewers can inspect exactly what the agent validated, documented, and prepared. The generated packet is ignored by git; the curated live proof is in &lt;code&gt;docs/live_databricks_evidence.md&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;The live Databricks demo is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;databricks&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;databricks&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;bundle&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;validate&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;--target&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;dev&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;databricks&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;bundle&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;deploy&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;--target&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;dev&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;databricks&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;bundle&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;run&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;vendor_sales_release&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;--target&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;dev&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Hermes reads the source contract and sample CSV.&lt;/li&gt;
&lt;li&gt;Hermes plans the data engineering work.&lt;/li&gt;
&lt;li&gt;Hermes prepares Databricks bundle, job, quality, and governance artifacts.&lt;/li&gt;
&lt;li&gt;Hermes deploys a serverless Databricks job.&lt;/li&gt;
&lt;li&gt;Hermes creates live bronze, silver, and gold Delta tables.&lt;/li&gt;
&lt;li&gt;Hermes validates quality checks against the live tables.&lt;/li&gt;
&lt;li&gt;Hermes prints data product documentation evidence for review.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Latest captured live proof:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Job result: &lt;code&gt;TERMINATED SUCCESS&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Tables: &lt;code&gt;workspace.sales.bronze_vendor_sales_orders&lt;/code&gt;, &lt;code&gt;workspace.sales.silver_sales_orders&lt;/code&gt;, &lt;code&gt;workspace.sales.gold_sales_order_metrics&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Quality checks: all pass with zero failing rows&lt;/li&gt;
&lt;li&gt;Evidence packet: &lt;code&gt;docs/live_databricks_evidence.md&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;Repository: &lt;a href="https://github.com/kenkondo/hermes-lakehouse-engineer" rel="noopener noreferrer"&gt;https://github.com/kenkondo/hermes-lakehouse-engineer&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  My Tech Stack
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Hermes Agent&lt;/li&gt;
&lt;li&gt;Databricks Asset Bundles&lt;/li&gt;
&lt;li&gt;Databricks serverless jobs&lt;/li&gt;
&lt;li&gt;Unity Catalog tables, comments, and governance conventions&lt;/li&gt;
&lt;li&gt;Python&lt;/li&gt;
&lt;li&gt;SQL&lt;/li&gt;
&lt;li&gt;YAML&lt;/li&gt;
&lt;li&gt;Markdown&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How I Used Hermes Agent
&lt;/h2&gt;

&lt;p&gt;Hermes Agent powers the project as the autonomous data engineering operator. It reads the source contract, reasons through the implementation plan, prepares pipeline and governance artifacts, deploys the Databricks job, validates live tables, and summarizes the release.&lt;/p&gt;

&lt;p&gt;The most important Hermes capabilities are planning, tool use, multi-step reasoning, and file-aware execution. Data engineering is not a single code-generation step; it requires understanding the source, designing target tables, enforcing quality gates, documenting governance, and communicating readiness. Hermes is a strong fit because it can carry that workflow across the full local delivery loop.&lt;/p&gt;

&lt;p&gt;The Unity Catalog documentation packet is a key part of the project. Hermes acts as both data engineer and data steward by generating table comments, column comments, data classifications, ownership metadata, lineage, and quality expectations before the asset is promoted.&lt;/p&gt;

&lt;p&gt;What I liked most about using Hermes here is that the agentic loop matches the real work. A data engineer does not simply write Spark code. They read the contract, make tradeoffs, create deployment artifacts, validate the result, explain what changed, and leave behind evidence that another person can trust. That is the experience this project tries to make concrete.&lt;/p&gt;

</description>
      <category>hermesagentchallenge</category>
      <category>devchallenge</category>
      <category>agents</category>
    </item>
    <item>
      <title>Team HackReddy</title>
      <dc:creator>kenkondo</dc:creator>
      <pubDate>Tue, 27 Oct 2020 18:27:43 +0000</pubDate>
      <link>https://dev.to/kenkondo/reddy-to-start-the-mulesofthackathon-2ccf</link>
      <guid>https://dev.to/kenkondo/reddy-to-start-the-mulesofthackathon-2ccf</guid>
      <description>&lt;p&gt;Mulesoft Haikuthon&lt;br&gt;
Every day, API day&lt;br&gt;
Get Reddy, Set Go&lt;/p&gt;

&lt;p&gt;I remember the days when I was a child and I used to take paper numbers and watch a red LED light uptick while waiting for my number to come up.  I'd secretly hope that my fellow patrons would succumb to their thoughts and abandon their paper ticket spot in line.  There were no cell phones back then; you could only people watch or go over the various things in your sight cyclically until you are finally able to do what you came to do.&lt;/p&gt;

&lt;p&gt;I know, you're wondering if the semicolon is right in that last sentence… me too.&lt;/p&gt;

&lt;p&gt;The next thing I can remember was someone greeting me with a tablet, asking me what I was there for and then seeing my name pop up on a screen in a table of many.  This was a game changer because waiting in a line that snakes around or worse many lines in parallel, where you wonder if you chose the right one as Sally in front of you does that one thing that takes forever.&lt;/p&gt;

&lt;p&gt;Fast forward to something to the App Economy where every single store has an App and Push notifications and Deals on Guac and French Fries… your hair is long from the shutdown, but now you can get a virtual place in line and show up to get a mediocre haircut without waiting.  You can go to the mall and sample Bath and Body Works smells until you get notified that your time to look into the mirror and question your decision to be at the mall for a hair cut and further whether or not that snip was the right one to get you to look like that virtual persona in your head.&lt;/p&gt;

&lt;p&gt;Now, let's talk about this year called 2()2().  I write it leetly because it's mere mention speaks to bad JuJu and Team Hack Reddy wants a Dub.  (This is slang for saying that I replaced the zeroes with parentheses because writing it out would be bad luck and the team wants to win) In this year, the notion of a line has been magnified 6X, or 3X if we're counting the guy that was behind me, smoking a cigarette, not wearing a max at the DMV.&lt;/p&gt;

&lt;p&gt;If you've been to a bank or credit union this year, you've seen what would appear to be opening night at The Apple Store after Tim Cook gave a presentation in a black t-shirt 2 months ago unveiling a mini rounded corner device that you MUST HAVE.  It's November now and the temperatures have fallen and in the Bay Area there is this funny thing called rain falling from the sky that hasn't shown it's beautiful grace in 7 months.  &lt;/p&gt;

&lt;p&gt;These poor people!  I mean we need the rain but standing in line in the cold rain in November is not my cup of tea.  However, it is completely necessary for Muledred who doesn’t like taking images of checks and then not trusting that she'll get the $8.55 from the book club breakfast check split.  &lt;/p&gt;

&lt;p&gt;Team HackReddy was called to the scene to solve this most difficult problem:  Keep Muledred dry and happy, and make sure she doesn't miss her place in line while she plays scrabble on her phone. &lt;/p&gt;

&lt;p&gt;Now we are wondering about the colon, right? &lt;/p&gt;

&lt;p&gt;The Team brainstorms and comes up with User Experience Flows and User Stories.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fux2tj6q0zgpot8dn7y0c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fux2tj6q0zgpot8dn7y0c.png" alt="Alt Text" width="799" height="197"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fje1ugic62n6nfsk9bwy8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fje1ugic62n6nfsk9bwy8.png" alt="Alt Text" width="800" height="272"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then, they came up with the design.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F4wf7u2j8mzhmvmyfbiel.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F4wf7u2j8mzhmvmyfbiel.png" alt="Alt Text" width="800" height="544"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The Member could send a text to Twilio which would then send a message to a Mulesoft Webhook that create a Solace Topic that would put the Member into a Solace Queue.  A Mulesoft Twilio API subscribed to the Solace Topic would send a text back to the Member letting them know where they are in line and that they could play Jeopareddy while waiting via text.&lt;/p&gt;

&lt;p&gt;The Member could also go to a website to check in and get  number that way.  They can then monitor the queue with the app or get alerts by text as to when they can brave the cold rain and check in.&lt;/p&gt;

&lt;p&gt;We would also need a check-in and remove from queue microapp for members that neither texted or went to the website.  This same app would check people in when their number was up and they were served.&lt;/p&gt;

&lt;p&gt;React opening / onboarding screen:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fpebuf488mj5v1z4y6xd2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fpebuf488mj5v1z4y6xd2.png" alt="Alt Text" width="414" height="736"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fo05azrrhruenptg7oh3c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fo05azrrhruenptg7oh3c.png" alt="Alt Text" width="414" height="736"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;React waiting list page, polls every 10 seconds:&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F822tslungp2ej6bks1l7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F822tslungp2ej6bks1l7.png" alt="Alt Text" width="414" height="736"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fkugunvh08j2dt6ld4ddr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fkugunvh08j2dt6ld4ddr.png" alt="Alt Text" width="414" height="736"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;React Game Page:&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F2hb3nrizxu96xq508adk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F2hb3nrizxu96xq508adk.png" alt="Alt Text" width="414" height="736"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F54eoa3hbitx4b3gblut4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F54eoa3hbitx4b3gblut4.png" alt="Alt Text" width="414" height="736"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Mulesoft Trivia Game Flow: &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F77vxgdy3i1dauyxq338o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F77vxgdy3i1dauyxq338o.png" alt="Alt Text" width="800" height="491"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;External Messaging Flow: &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fjel810qas12r5lm6j31y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fjel810qas12r5lm6j31y.png" alt="Alt Text" width="624" height="464"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Incoming SMS Flow:&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fhh8gwjco6p1de08wb5pq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fhh8gwjco6p1de08wb5pq.png" alt="Alt Text" width="417" height="598"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Messaging Callback Flow:&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fk97r88tha8yqy3fs70dw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fk97r88tha8yqy3fs70dw.png" alt="Alt Text" width="495" height="757"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Solace System Checkin Service:&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fp628ivsojvds3i3mjslx.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fp628ivsojvds3i3mjslx.jpg" alt="Alt Text" width="643" height="762"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;React Check-in App (Tablet): &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fsau8sh3teyc6u0iic3ms.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fsau8sh3teyc6u0iic3ms.png" alt="Alt Text" width="800" height="599"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Solace Event Queue:&lt;br&gt;
Taxonomy: redwood/{desc}/{method}/{branch-id}/{action}&lt;br&gt;
Examples: redwood/check-in/text/21/enable&lt;br&gt;
         redwood/check-in/web/23/enable&lt;br&gt;
{desc} will always be ‘check-in’ as this is how we distinguish our app from other Solace events.&lt;/p&gt;

&lt;p&gt;Queue: redwood/check-in queue listens on the topic redwood/check-in/&amp;gt; to get all events related to check-in. &lt;/p&gt;

&lt;p&gt;Mulesoft service is the only method to pull out of the queue, and can be the only listener on the queue, so other apps interested in changes to the queue will need to listen on the topics below. Look to the description to get the result desired.&lt;/p&gt;

&lt;p&gt;Topics:&lt;br&gt;
Subscription    Description&lt;br&gt;
redwood/check-in/&amp;gt;  Gets all events &lt;br&gt;
redwood/check-in/&lt;em&gt;/&lt;/em&gt;/enable     Wildcards: Gets all enable or disable events from all branches&lt;br&gt;
redwood/check-in/&lt;em&gt;/&lt;/em&gt;/disable&lt;br&gt;
redwood/check-in/text/&lt;em&gt;/enable  Method: Gets all text or web or 1mv initiated additions to the queue from all branches.&lt;br&gt;
redwood/check-in/web/&lt;/em&gt;/enable&lt;br&gt;
redwood/check-in/*/21/enable    Branch: Gets all new additions to the queue for a specific branch (21 in this case) regardless of entry method&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fto8vv28ej35dqtsbrwkk.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fto8vv28ej35dqtsbrwkk.jpg" alt="Alt Text" width="800" height="418"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Reference&lt;/p&gt;

&lt;p&gt;Mule application source code: &lt;br&gt;
&lt;a href="https://github.com/kenkondo/VirtualTicketQueue" rel="noopener noreferrer"&gt;https://github.com/kenkondo/VirtualTicketQueue&lt;/a&gt;&lt;br&gt;
*Note: we did not include the Twilio External Messaging flow as that was an existing service.  All others are new.&lt;/p&gt;

&lt;p&gt;Team HackReddy&lt;br&gt;
Astro Ken&lt;br&gt;
Cloudy Jeff&lt;br&gt;
Einstein Sean&lt;br&gt;
Codey Adrian&lt;br&gt;
Bot Jake&lt;br&gt;
Appy Tanner&lt;br&gt;
Hootie Rio&lt;br&gt;
Blaze Dean&lt;br&gt;
Trailhead John&lt;/p&gt;

&lt;p&gt;This Hack is dedicated to Alex Trebek, may he rest in peace…&lt;/p&gt;

</description>
      <category>mulesofthackathon</category>
      <category>mulesoft</category>
      <category>twilio</category>
      <category>solace</category>
    </item>
  </channel>
</rss>
