# TechFabric > TechFabric is a software development company. Senior engineers who embed in your team or own delivery as a pod, shipping production software on Databricks, Temporal, and the major clouds. Founded in 2017 by engineers. 115+ engineers across Phoenix, Amsterdam, Dnipro and Hyderabad. TechFabric sells engineering capability, not licences. Engagements run either way: our engineers embed in your team, or we stand up a pod that owns delivery end to end. Five service lines: Databricks implementation, AI systems, forward-deployed engineers, platform and SaaS development, and APIs and durable systems. TechFabric is a Databricks partner and a Temporal partner. We also build eight accelerators that other companies adopt to speed up their own Databricks programmes: Fabric Platform, Harness, Airlift, Runway, Radar, Tower, Experiments and GTM Brain. Each runs in the customer's own Databricks workspace. ## Services - [Databricks implementation](https://www.techfabric.com/services/databricks): lakehouse to live application. Migration, Unity Catalog governance, and native Databricks Apps. - [AI systems](https://www.techfabric.com/services/ai-systems): context stores, memory, retrieval and governed agents that survive production. - [Forward-deployed engineers](https://www.techfabric.com/services/forward-deployed): senior engineers embedded in your business who scope and build in the same motion. - [Platform and SaaS development](https://www.techfabric.com/services/platform): full product delivery, from first architecture to a system running under load. - [APIs and durable systems](https://www.techfabric.com/services/apis): long-running operations on Temporal that survive restarts, retries and partial failure. ## Databricks - [Databricks overview](https://www.techfabric.com/databricks): four fixed-shape engagements. Health Check, Migration Readiness Sprint, Lakehouse Launchpad, Genie Accuracy. - [Databricks implementation expertise](https://www.techfabric.com/expertise/databricks): a software company with 80 Databricks-certified engineers. Apps and agents in the workspace, not only pipelines. - [Data platform expertise](https://www.techfabric.com/expertise/data-platform): a governed lakehouse with Unity Catalog first, or a two-week inventory of the warehouse you are leaving. - [Databricks Health Check](https://www.techfabric.com/databricks/health-check): two-week workspace audit of compute cost, job reliability and Unity Catalog gaps. Scorecard either way. - [Migration Readiness Sprint](https://www.techfabric.com/databricks/migration-readiness): two weeks that inventory the estate, agree exclusions and hand you a wave plan. Runs on Fabric Airlift. - [Lakehouse Launchpad](https://www.techfabric.com/databricks/launchpad): six weeks to a governed lakehouse an executive can question in plain English. - [Genie Accuracy](https://www.techfabric.com/databricks/genie-accuracy): semantic layer and evaluation harness, so Genie answers can be checked rather than believed. - [Snowflake to Databricks](https://www.techfabric.com/databricks/from-snowflake): what breaks on Snowflake, then the two-week Migration Readiness Sprint. Runs on Fabric Airlift. - [Synapse to Databricks](https://www.techfabric.com/databricks/from-synapse): dedicated SQL, serverless, Spark and ADF inventoried separately. Runs on Fabric Airlift. - [Teradata to Databricks](https://www.techfabric.com/databricks/from-teradata): BTEQ, FastLoad, macros and primary indexes, written down before a date is picked. Runs on Fabric Airlift. ## Accelerators - [Fabric Platform](https://www.techfabric.com/accelerators/fabric-platform): governed mutation pipeline. Every state change is policy-gated, auditable and replayable. - [Fabric Harness](https://www.techfabric.com/accelerators/fabric-harness): TypeScript framework for durable agents deployable to Databricks Apps, Temporal or Cloudflare. - [Fabric Airlift](https://www.techfabric.com/accelerators/fabric-airlift): governed warehouse and ETL migration onto Databricks, with signed certificates and reversible cutover. - [Fabric Runway](https://www.techfabric.com/accelerators/fabric-runway): delivery control plane for Databricks Apps, with preview environments and evaluation gates. - [Fabric Radar](https://www.techfabric.com/accelerators/fabric-radar): mission control for live Databricks workloads, with declared SLOs and governed intervention. - [Fabric Tower](https://www.techfabric.com/accelerators/fabric-tower): where people watch, steer and approve the work of agent squads. - [Fabric Experiments](https://www.techfabric.com/accelerators/fabric-experiments): A/B experimentation and quality gates on Databricks and MLflow. - [Fabric GTM Brain](https://www.techfabric.com/accelerators/fabric-gtm-brain): a revenue engine for GTM teams, built on the whole stack. ## Company - [How we work](https://www.techfabric.com/how-we-work): the four-step engagement, from a first conversation with an engineer to production. - [Team](https://www.techfabric.com/team): 115+ engineers, four offices, average 15 years of experience. - [Case studies](https://www.techfabric.com/case-studies): production systems for SWBC, Auto Approve, Athlinks, iLending and others. - [FAQ](https://www.techfabric.com/faq): every question we are asked, in one place. - [Contact](https://www.techfabric.com/contact): talk to a senior engineer. ## Reading this site as Markdown Every page below is also served as clean Markdown at the same URL with a .md suffix, with no navigation chrome: - https://www.techfabric.com/services/databricks.md - https://www.techfabric.com/databricks/health-check.md - https://www.techfabric.com/expertise/databricks.md - https://www.techfabric.com/accelerators/fabric-airlift.md - https://www.techfabric.com/blog/unity-catalog-before-the-first-pipeline.md ## Blog 86 posts. Topics: Databricks, Knowledge Share, AI/ML, Durable Execution, Workflows, Field Notes, What We Do, Cloud, Applied AI, Thought Leadership, Azure, News, Temporal, Design, React, Awards. - [Unity Catalog before the first pipeline](https://www.techfabric.com/blog/unity-catalog-before-the-first-pipeline): Lakehouse pilots skip grants and then cannot be handed to security. The Lakehouse Launchpad puts Unity Catalog first. Fabric Airlift handles the warehouse underneath. - [The cost dashboard said the workspace was fine](https://www.techfabric.com/blog/the-cost-dashboard-said-the-workspace-was-fine): A Databricks cost dashboard shows spend. A two-week Health Check finds the spend that bought nothing: all-purpose clusters, orphaned schedules, Unity Catalog that stops halfway. - [Four thousand objects and nobody would name the exclusions](https://www.techfabric.com/blog/four-thousand-objects-and-nobody-would-name-the-exclusions): Warehouse migrations slip because the exclusions were never written down. The Migration Readiness Sprint inventories the estate on Fabric Airlift before anyone picks a date. - [Finance said ninety days. Operations said open account.](https://www.techfabric.com/blog/finance-said-ninety-days-operations-said-open-account): Genie fails when two teams mean different things by the same word. Genie Accuracy hardens the semantic layer. Fabric Experiments keeps the suite running. - [Nobody could tell whether the agent was any good](https://www.techfabric.com/blog/nobody-could-tell-whether-the-agent-was-any-good): A team can ship an agent in nine days and then argue for two months about whether its answers are right. The fix is boring: write down what a good answer is before you build the thing that produces them. - [Leveraging PyTest for Data Quality Checks Directly within Databricks](https://www.techfabric.com/blog/pytest-for-databricks-data-quality-checks): A practical, example-driven guide to writing PyTest-based data quality checks inside Databricks notebooks, covering bronze-to-silver validation, edge cases, fixtures, and error handling for reliable pipelines. - [How QA Engineers Can Use Databricks Repos for Better Test Automation Workflows](https://www.techfabric.com/blog/databricks-repos-for-qa-test-automation): Learn how QA and data engineering teams move beyond ad-hoc notebooks to scalable, version-controlled test automation using Databricks Repos, covering repo structure, modular tests, and team collaboration workflows. - [Governance You Can Actually Ship](https://www.techfabric.com/blog/governance-you-can-actually-ship): AI governance fails when it lives in documents instead of infrastructure. Real compliance comes from systems that enforce rules at runtime, closing the gap between policy and what your AI actually does in production. - [The Agent That Deleted Production](https://www.techfabric.com/blog/the-agent-that-deleted-production): Enterprise software fails when IT enforces tools people don't want. Like the iPhone shift, real adoption comes from user pull, not mandates. The lesson: build systems people choose to use, or risk investing in software that sits idle. - [The Most Expensive Software Nobody Uses](https://www.techfabric.com/blog/the-most-expensive-software-nobody-uses): Companies are spending millions on enterprise AI tools employees barely use. Meanwhile, shadow AI is spreading across organizations. The problem isn't workers ignoring policy, it's enterprise AI that doesn't solve the problems people actually have. - [The Forward-Deployed Playbook](https://www.techfabric.com/blog/the-forward-deployed-playbook): AI flipped build vs. buy. Now it's flipping delivery. Small teams of senior engineers, embedded in your operations and powered by AI infrastructure, ship production-grade systems in weeks, not months, built for real constraints, not documentation. - [What If Agile Was the Detour?](https://www.techfabric.com/blog/what-if-agile-was-the-detour): Agile was a response to expensive execution, not a rejection of planning. As AI collapses build time, the economics shift. Deep upfront specification plus rapid execution now delivers production-grade systems in weeks instead of months. - [Agentic Systems Without the Chaos: Building AI That Stays on the Rails](https://www.techfabric.com/blog/agentic-systems-without-the-chaos-building-ai-that-stays-on-the-rails): Agentic AI can deliver real business value without sacrificing control. This deep dive breaks down the engineering patterns that make autonomous systems reliable in production, including guardrails, observability, and circuit breakers. - [The Build vs. Buy Decision for Enterprise AI (When Off-the-Shelf Fails You)](https://www.techfabric.com/blog/the-build-vs-buy-decision): Recent AI releases are reshaping the enterprise build vs buy decision. Faster models and larger context windows make custom AI viable in weeks, while data sovereignty concerns expose vendor limits. This article outlines when to buy, build, or combine - [How to Unlock a New Market Without Rebuilding Your Core Platform](https://www.techfabric.com/blog/unlock-a-new-market-without-rebuilding-your-core-platform): Mature platforms often stall not because of scale, but because onboarding smaller customers gets expensive. This post explores how changing access, not the core, can unlock growth. - [What Teams Get Wrong About Outages and Operational Risk](https://www.techfabric.com/blog/what-teams-get-wrong-about-outages-and-operational-risk): Cloud outages are unavoidable. Cloudflare, AWS, and Azure all experience failures that no internal engineering effort can fully protect against. When a provider goes down, every dependent service waits for recovery. - [DASF - Databricks AI Security Framework](https://www.techfabric.com/blog/dasf---databricks-ai-security-framework): DASF is Databricks' map of AI risks. We put the controls in the runtime: Unity Catalog grants, AI Gateway, and the same policy pipeline for agents as for people. - [Beyond Basic Data Catalogs: How Unity Catalog Solves Real Enterprise Governance Challenges](https://www.techfabric.com/blog/beyond-basic-data-catalogs-how-unity-catalog-solves-real-enterprise-governance-challenges): Unity Catalog is the permission boundary we refuse to route around. A Health Check finds coverage that stops halfway. Agents inherit the same grants as a person. - [Migrating from Legacy Data Warehouses to Databricks Data & AI Platform](https://www.techfabric.com/blog/migrating-from-legacy-data-warehouses-to-databricks-data-ai-platform): Warehouse migrations slip on scope, not conversion. Two weeks on Fabric Airlift inventories the estate, agrees exclusions and hands you a wave plan. - [From Data Warehouses to Data Intelligence: Why Your Next Platform Choice Will Define the Next Decade](https://www.techfabric.com/blog/from-data-warehouses-to-data-intelligence-why-your-next-platform-choice-will-define-the-next-decade): Transform your data strategy: From warehouses to AI-powered intelligence platforms. Discover why your platform choice defines the next decade. - [Driving Real-World Value with Intelligent Business Intelligence, BI in the era of AI](https://www.techfabric.com/blog/driving-real-world-value-with-intelligent-business-intelligence---bi-in-the-era-of-ai): Revolutionize your BI with Databricks AI/BI: conversational analytics, semantic understanding, and intuitive dashboards for data-driven decisions. - [Rethink AI: Building a Horizontal Layer for Enterprise-Wide Transformation](https://www.techfabric.com/blog/rethink-ai-building-a-horizontal-layer-for-enterprise-wide-transformation): Discover how rethinking AI and treating AI as a horizontal layer across the entire business can revolutionize operations, break down silos, enhance efficiency, and drive enterprise-wide transformation. Stop thinking single-app use cases and look... - [Using Application Insights as a Sink for logging in ASP.NET Core](https://www.techfabric.com/blog/using-application-insights-as-a-sink-for-logging-in-asp-net-core): ASP.NET Core has very extensible logging interface. I provides an ILogger interface along with few default implementations that can be used to log data. - [Introducing Azure AI Foundry: A CTO's Guide to Starting and Scaling AI](https://www.techfabric.com/blog/introducing-azure-ai-foundry-a-ctos-guide-to-starting-and-scaling-ai): Azure AI Foundry is your all-in-one platform for AI development. Access pre-trained models, fine-tune them for business needs, and deploy AI securely at scale, all in one collaborative environment. Simplify innovation and drive growth effortlessly. - [Using Traefik Reverse Proxy For Securing Microservices On Azure Service Fabric](https://www.techfabric.com/blog/using-traefik-reverse-proxy-for-securing-microservices-on-azure-service-fabric): Service Fabric is a Microservices platform by Microsoft, similar to Docker Swarm/Kubernetes. It provides great features out of the box and helps orchestrate and manage your microservices. - [Taking The Mystery Out Of Microsoft Azure And What It Can Do For Your Business](https://www.techfabric.com/blog/taking-the-mystery-out-of-microsoft-azure-and-what-it-can-do-for-your-business): If you're like most business owners, no matter how big your company is or what it does, you're always looking for ways to grow, cut costs and be more efficient. In a nutshell, Microsoft Azure can help you do all of those things. - [Setting Up Production Ready Infrastructure For Microservices](https://www.techfabric.com/blog/setting-up-production-ready-infrastructure-for-microservices): Service Fabric is Microsoft's answer to Microservices Orchestrator. It can help with Service Discovery, Fault Tolerance and containerizing your applications. - [Deploying Service Fabric Cluster To Existing VNET With Containers](https://www.techfabric.com/blog/deploying-service-fabric-cluster-to-existing-vnet-with-containers): Service Fabric is a terrific platform for orchestrating your Microservices. It provides many features like Service Discovery, Fault Tolerance, Reverse Proxy etc., out of the box, making it extremely easy to manage your Microservices. - [Convert PFX Certificate to Base64 String](https://www.techfabric.com/blog/convert-pfx-certificate-to-base64-string): When working on Azure DevOps test plans, oftentimes you'd have to secure the communication between the resources using certificates. - [Azure Service Fabric is amazing!](https://www.techfabric.com/blog/azure-service-fabric-is-amazing): Microservices are a great way to develop modern cloud-native applications. Traditional approach to developing software applications where the entire functionality is encapsulated into a single monolith, has many challenges as the functionality - [Azure Service Fabric Gems: Introduction](https://www.techfabric.com/blog/azure-service-fabric-gems-introduction): In my previous article, I've given a brief overview of Azure Service Fabric and how it helps solve some of the pain points of developing applications using Microservices.Service Fabric platform continues to evolve. - [3 Ways To Run Automated Tests On Azure DevOps](https://www.techfabric.com/blog/3-ways-to-run-automated-tests-on-azure-devops): 'Bugs are everywhere', you think, trying to fill the water bank on your office's coffee machine, but the situation changes since the manager continues with 'WE HAVE A BUG IN PRODUCTION!'. - [From Spreadsheet to System: How We Automated Our Internal Processes with Microsoft Dynamics](https://www.techfabric.com/blog/from-spreadsheet-to-system-how-we-automated-our-internal-processes-with-microsoft-dynamics): When we started TechFabric back in 2016 we had a team of eight and no reasonable need for automation or extensive internal documentation. We used capable Excel Spreadsheets to keep track of everything from timesheets to task management - [AI at Scale: Managing Cloud Multi-Tenant AI Infrastructure with Temporal](https://www.techfabric.com/blog/ai-at-scale-managing-cloud-multi-tenant-ai-infrastructure-with-temporal): Managing AI-driven, multi-tenant cloud applications can be challenging, with complexities like scaling, cost optimization, and security. At TechFabric, we've embraced Temporal to orchestrate infrastructure workflows efficiently. - [Supply Chain: Building it Stronger, Smarter and Faster using SmartCert](https://www.techfabric.com/blog/supply-chain-building-it-stronger-smarter-and-faster-using-smartcert): SmartCert® is one of those products you don't seem to come across a lot. The idea of SmartCert® is an easy solution for a critical, long-standing problem in the supply chain, but there is always one question that boggles the mind - [Off the Shelf vs. Custom Software: Selecting the Optimal CRM for your Business](https://www.techfabric.com/blog/off-the-shelf-vs-custom-software-selecting-the-optimal-crm-for-your-business): It's fairly obvious that customer relationship management is an essential focus of any successful business, but the details get much more complicated. Maintaining the most favorable business-customer relationship contributes directly - [How We Created A Multi-Tenant, Multi-Cloud, & Multi-Model AI Platform with Temporal, Fiber Copilot](https://www.techfabric.com/blog/how-we-designed-a-multi-tenant-multi-cloud-and-multi-model-ai-platform----fiber-copilot): TechFabric introduces the Fiber Copilot Platform, a multi-tenant, multi-cloud, and multi-model AI Ops platform for quickly creating and deploying AI chatbots and copilots. - [Durable RAG with Temporal and Chainlit](https://www.techfabric.com/blog/durable-rag-with-temporal-and-chainlit): Calling different tools from RAG pipeline can be difficult. This blog post describes how to use temporal for durable execution of RAG tools in Chainlit. - [AI and Machine Learning Dominate Auto Finance Innovation Summit](https://www.techfabric.com/blog/ai-and-machine-learning-dominate-auto-finance-innovation-summit): The dust has settled from attending our first Auto Finance Innovation Summit in San Diego and I am even more convinced that the auto finance industry is in an accelerated state of application modernization. - [9 Checkpoints To Ensure Your B2B eCommerce Site is Firing on All Cylinders](https://www.techfabric.com/blog/9-checkpoints-to-ensure-your-b2b-ecommerce-site-is-firing-on-all-cylinders): The modern web is a vast ocean of digital ecosystems, eCommerce solutions, and SaaS products. Competing in this digital arena requires precision code, well-developed content, and a best-in-class web presence. - [TechFabric receives 5 stars on Clutch Profile](https://www.techfabric.com/blog/tech-fabric-receives-5-stars-on-clutch-profile): In today's world, digital accessibility and efficiency are essential for businesses. Yet, online development has grown complex and challenging to navigate. - [Using Custom Software Development Data For supply Chain Optimization](https://www.techfabric.com/blog/using-custom-software-development-data-for-supply-chain-optimization): Rising demand for Microsoft Dynamics 365 for supply chain optimization driven by data analysis and automation in logistics. Collaboration and strategic partnerships key to industry-wide consistency. - [Top 6 Common Challenges Of Any Project Manager: Spot And Stop](https://www.techfabric.com/blog/top-6-common-challenges-of-any-project-manager-spot-and-stop): Who is precisely a project manager (PM)? What are the main functions of the PM? What are the key features of a skilled PM who indeed leads the team ahead? What is the critical problem does PM face every single day? - [Supply Chain Optimization: Do I Innovate, Or Do I Wait?](https://www.techfabric.com/blog/supply-chain-optimization-do-i-innovate-or-do-i-wait): When it comes to supply chain optimization and adaptation to new technologies, some companies rise to the challenge while others experience a brutally painful demise. - [How To Work From Home With Children](https://www.techfabric.com/blog/how-to-work-from-home-with-children): Work from home with children during the quarantine period of COVID-19 was the reason for many jokes, funny videos and memes. Yes, it's not easy to combine your current job with the job of being a parent! - [Dynamics 365 CRM: Transforming Your Sales Quote Process](https://www.techfabric.com/blog/dynamics-365-crm-transforming-your-sales-quote-process): Explore how Microsoft Dynamics 365 CRM transforms the sales quote process through powerful customization, automation, and integration capabilities. By centralizing quotes and automating workflows, Dynamics 365 enables businesses to - [What Every CTO Needs To Know About Databricks](https://www.techfabric.com/blog/what-every-cto-needs-to-know-about-databricks): Unlock the power of big data with our CTO's guide to Databricks. Learn essential strategies to maximize your data potential and drive innovation. - [Why Business Can't Afford to Ignore Generative AI: 10 Game-Changing Benefits](https://www.techfabric.com/blog/why-business-cant-afford-to-ignore-generative-ai-10-game-changing-benefits): This article explores the top 10 reasons why enterprises should adopt Generative AI, highlighting its ability to automate tasks, enhance decision-making, and foster innovation. By leveraging Gen AI platforms like Fiber AI, businesses can transform - [UI/UX at Scale: It's Time To Move to Design Systems](https://www.techfabric.com/blog/ui-ux-at-scale-its-time-to-move-to-design-systems): Design systems have been increasingly growing in popularity within organizations, namely due to their ability to help companies achieve scale and enable front-end developers while maintaining consistent styling across an application - [Trending Ideas For Cloud Services](https://www.techfabric.com/blog/trending-ideas-for-cloud-services): Mobile Apps have been around almost as long as the mobile phone. While programs were developed for use on the 'brick' phones as the early mobiles were called in the 1970s, the first apps as we recognize them today were created in the early 1990s. - [Transform Your Data Visibility, Transform Your Organization](https://www.techfabric.com/blog/transform-your-data-visibility-transform-your-organization): Ever hear the phrase 'data rich, insight poor'? It's easier now than ever to collect data in a variety of avenues within your organization, but that data can only be as powerful as your organization's ability to gain intelligence and insight from it. - [Top Tips To Help You Find The Right Software Development Company](https://www.techfabric.com/blog/top-tips-to-help-you-find-the-right-software-development-company): Most small business owners don't have the finances to keep a stable of app developers on their payroll full time. In fact, that's too much even for some giant multinational companies. The good news though, is that you don't have to. - [Top 2021 tech trends in Supply Chain Management: Preparing for the revolution.](https://www.techfabric.com/blog/top-2021-tech-trends-in-supply-chain-management-preparing-for-the-revolution): Leaders in the supply chain industry no longer consider new technologies as merely a necessary "means to an end." These systems are now considered vital because they are continually evolving, growing increasingly smarter and faster - [Top 10 Mobile App Development Tips](https://www.techfabric.com/blog/top-10-mobile-app-development-tips): Mobile apps are bits of wonder in our digital universes. There are over 4 million apps and counting across the major platforms and they fill our lives with productivity, motivation, and entertainment. - [To Xamarin or Not to Xamarin](https://www.techfabric.com/blog/to-xamarin-or-not-to-xamarin): As the digital revolution rapidly expands across all business sectors and industries, Xamarin crossplatform mobile development becomes increasingly more in-demand. In fact, Forbes estimates that some sectors experienced a whopping ten - [The Power of Data, AI and Digital Transformation](https://www.techfabric.com/blog/the-power-of-data-ai-and-digital-transformation): Digitalization can accelerate new product launches by accelerating the development process using the agile MVP approach and increasing the reach and access to target customers. - [The Next Generation Has Arrived: How 5G Will Accelerate Your Digital Transformation in 2021 and Beyond](https://www.techfabric.com/blog/the-next-generation-has-arrived-how-5g-will-accelerate-your-digital-transformation-in-2021-and-beyond): One of the most important things to understand about 5G is that you're talking about so much more than just another marketing term. - [The Imperative of Durable Execution in App Dev: Unveiling Temporal's Framework](https://www.techfabric.com/blog/the-imperative-of-durable-execution-in-app-dev-unveiling-temporals-framework): Discover why durable execution is crucial for today's software and how Temporal's framework bulletproofs applications and enables resilient, reliable distributed systems that withstand the challenges of modern technology environments effortlessly. - [The Effects Of Cypress Component Testing On Your React App](https://www.techfabric.com/blog/the-effects-of-cypress-component-testing-on-your-react-app): A good project needs a solid quality check, and teamwork among different experts, like developers and automation engineers, helps keep the product stable and reduces fixing costs after release. - [The Crucial Role of UX Research in Solving the Right Problems](https://www.techfabric.com/blog/the-crutial-role-of-ux-research-in-solving-the-right-problems): Research is crucial in any process as it helps identify unexpected problems, overlooked issues, or potential difficulties that might arise during development or after the launch. UX experts often find more problems than organizations expect. - [The Best Tips From TechFabric To Work Remotely](https://www.techfabric.com/blog/the-best-tips-from-techfabric-to-work-remotely): To prevent the disease from spreading and keep the working process head above water, the majority of IT companies worldwide have determined to work remotely. Our company was not an exception. - [Temporal: Airlines Booking Demo Application](https://www.techfabric.com/blog/temporal-airlines-booking-demo-application): This blog post covers some of the key concepts of Temporal framework and uses an Airlines ticket booking demo application to show how easy it is to build complex workflows using Temporal. - [TechFabric Wins New Comparably Leadership Award 2024](https://www.techfabric.com/blog/techfabric-wins-new-comparably-award-2024): TechFabric Wins Best Company Leadership 2024 - [TechFabric is a Winner of Comparably Awards 2023](https://www.techfabric.com/blog/techfabric-is-a-winner-of-comparably-awards-2023): TechFabric employees have spoken loud and clear! Out of tens of thousands of companies rated on Comparably over the past 12 months, TechFabric has been recognized as one of the best in the following categories, adding two more awards. - [TechFabric Celebrates Repeat Win at Comparably Awards 2024](https://www.techfabric.com/blog/techfabric-celebrates-repeat-win-at-comparably-awards-2024): At TechFabric, we're not just about significant technologies; we're about our people and their journey toward excellence. It's with great pride and excitement that we announce our repeat win at the esteemed Comparably Awards 2024 - [Secure Microservices Infrastructure Architecture by Design](https://www.techfabric.com/blog/secure-microservices-infrastructure-architecture-by-design): Many software development teams have jumped on the Microservices bandwagon to bring their applications to life and respond to the growing demand of their end users. - [Robotic Automation: The Future Of Supply Chain Optimization](https://www.techfabric.com/blog/robotic-automation-the-future-of-supply-chain-optimization): Robotics automation technologies are already transforming the world of supply chain dynamics across nearly every business sector and industry. - [Outsourcing: The Secret Weapon for High-Growth Companies](https://www.techfabric.com/blog/outsourcing-the-secret-weapon-for-high-growth-companies): As an increasing number of companies look to digital for growth and scale, they face many challenges on their way. From transforming their in-house and customer facing systems and software to deciding when (and who) to hire, and balancing - [Meet Preetham Reddy: Innovator, Leader, and Founder of TechFabric](https://www.techfabric.com/blog/meet-preetham-reddy-innovator-leader-and-founder-of-techfabric): Preetham Reddy, Founder and CEO of TechFabric, is a visionary leader with a proven track record in developing mission-critical systems for companies like American Airlines. With over two decades of experience, he is a thought leader - [Meet John Bellaud: Strategist & Digital Product Leader](https://www.techfabric.com/blog/meet-john-bellaud-strategist-digital-product-leader): John Bellaud, EVP of Product and Delivery at TechFabric, brings over 30 years of expertise in digital strategy, product leadership, and business innovation. His unique ability to bridge the gap between technology, business, and user experience drives - [Meet Andrew Ripley, Senior Product Owner at TechFabric](https://www.techfabric.com/blog/meet-andrew-ripley-senior-product-owner-at-techfabric): A technical solution is only as powerful as the humans behind it, and we are proud to have some pretty incredible people working at TechFabric. Let us introduce you to Andrew, one of our product owners and strategists helping companies take their - [Mastering the Art of Prompt Engineering for Generative AI](https://www.techfabric.com/blog/mastering-the-art-of-prompt-engineering-for-generative-ai): Mastering Prompt Engineering for Generative AI highlights crafting precise prompts to guide AI effectively, ensuring accurate and innovative outputs through an iterative process and user feedback. - [It's Time To Move Your Company To The Cloud: Here's Why](https://www.techfabric.com/blog/its-time-to-move-your-company-to-the-cloud-heres-why): Cloud removes the need for physical servers or traditional data centers, and offers a host of advantages through cost savings, greater flexibility, elasticity and optimal resource utilization. If you haven't moved yet, it's time. - [Innovation And Governance: Finding The Balance In AI](https://www.techfabric.com/blog/innovation-and-governance-finding-the-balance-in-ai-how-asfai-is-tapping-the-industrys-top-minds-to-chart-a-path-forward-for-the-future-of-artificial-intelligence): How ASFAI is tapping the industry's top minds to chart a path forward for the future of Artificial Intelligence - [Industry Game-Changer: Large Language Models (LLMs)](https://www.techfabric.com/blog/industry-game-changer-large-language-models-llms): Everything you need to know about Large Language Models (LLMs), how they are transforming information access, and revolutionizing every industry. Explore their ability to understand, generate, and transfer knowledge autonomously, reshaping customer - [How Temporal Has Transformed My Development Approach](https://www.techfabric.com/blog/how-temporal-has-transformed-my-development-approach): Adopting Temporal has completely transformed the way I approach development. It streamlined workflow management, cut down on the repetitive boilerplate code, and brought a new level of efficiency to my projects. - [Hiring Databricks Specialists: 12 Expert Insights You Need to Get it Right](https://www.techfabric.com/blog/hiring-databricks-specialists-12-expert-insights-you-need-to-get-it-right): Learn the 12 most important areas and get the knowledge you need to successfully hire Databricks specialists in-house. Get insights from experts who have built Databricks teams, see how they approach new hires and the key criteria they look at to mak - [E-Commerce Development: Microsoft vs. Magento & Shopify](https://www.techfabric.com/blog/e-commerce-development-microsoft-vs-magento-shopify): Microsoft, Shopify, and Magento are all leading e-commerce solutions. How do the three e-commerce platforms compare? The short answer depends on the use case, and each system is a clear winner in different circumstances. - [Dynamics 365 CRM - Why Are So Many Companies Migrating To It?](https://www.techfabric.com/blog/dynamics-365-crm---why-are-so-many-companies-are-migrating-to-it): In today's dynamic business world, Microsoft Dynamics 365 CRM is increasingly vital for organizations seeking streamlined processes, improved customer experiences, and sustained growth. - [Custom Software, Reasons Why They Are Good For Your Business](https://www.techfabric.com/blog/custom-software-reasons-why-they-are-good-for-your-business): Phoenix's custom software development scene is showing signs of growing rapidly as more and more tech companies migrate to the city and a thriving local startup scene takes roots and grows. - [Create A Wide Configuration For Running Cypress In GitHub Actions!](https://www.techfabric.com/blog/create-a-wide-configuration-for-running-cypress-in-github-actions): Configure Cypress tests with GitHub Actions for flexible environments, browsers, and resolutions. Integrates cleanly into CI/CD pipelines for team-wide accessibility and efficient testing workflows - [Breaking Down Silos: Integrating AI Across Business Functions](https://www.techfabric.com/blog/breaking-down-silos-integrating-ai-across-business-functions): Discover the impact of integrating AI across business functions. Explore case studies from industry leaders like Amazon and KLM, unveiling strategies and overcoming challenges for enhanced efficiency and sustainability. - [Automotive Innovation Center Accelerates Digital Transformation](https://www.techfabric.com/blog/automotive-innovation-center-accelerates-digital-transformation): TechFabric, exhibiting at API World in San Jose, is launching an Automotive Innovation Center to assist automotive and fintech sellers in speeding up their digital transformation efforts. - [Agile, Scrum, Kanban, or Waterfall?](https://www.techfabric.com/blog/agile-scrum-kanban-waterfall-the-insiders-guide-to-choosing-the-right-development-methodology): Discover the pros, cons, and insider's view on Agile, Scrum, Kanban, and Waterfall methodologies. Learn where, when, and how experienced teams select and combine methodologies to keep projects on track and maximize outcomes. - [Accelerate Automation: Power Automate Revolutionizes Productivity](https://www.techfabric.com/blog/accelerate-automation-power-automate-revolutionizes-productivity-the-top-5-reasons-you-should-be-using-it): Discover Microsoft Power Automate, the new standard in productivity. Pre-built automation flows, easy-to-use tools, and built-in AI models mean more power and less IT support. Learn more about Power Automate - [5 Steps of Managing the Customers Dream](https://www.techfabric.com/blog/5-steps-of-managing-the-customers-dream): Over the years, I've seen a fair mix of customer engagement, from escalation calls to quick check-in calls, with clients.All in all, it is a great privilege to being able to represent the company during a product call or potential discussion related --- # Full post text ## Unity Catalog before the first pipeline URL: https://www.techfabric.com/blog/unity-catalog-before-the-first-pipeline Date: 2026-08-12 Author: Troy Busot The pilot had a bronze layer, a dashboard, and a Genie space that demoed well on a Thursday. It did not have Unity Catalog. Someone had created the schemas in hive_metastore because that was the default in the workspace they were given. The pipeline wrote a Delta table, the graph looked good on a slide, and they kept going. Six weeks later security asked who could see the customer table. The honest answer was anyone with workspace access. That is an answer that ends a rollout. I have the same conversation about agents. Draw the permissions boundary before you give anything a service principal, because once an agent can reach production data without a grant model you can defend, you have an incident with a date on it. For a lakehouse the version is shorter and I still have to say it every time: grants, then data. ## Why people skip it Unity Catalog looks like ceremony when you are trying to prove the platform. A workshop cluster, a sample dataset, a notebook that lands one table, and you can have a graph on a slide by Friday. Putting the catalogue, the schemas, the storage credentials and the grants in place first looks like you have not started, which is the opposite of how a security review will read that week. I have watched teams retrofit Unity Catalog onto a lakehouse that already had six months of tables in it. Moving the metadata is doable. Reconstructing who was supposed to see what is not, because that knowledge lived in the people who ran the notebooks, and two of them have moved on. ## Six weeks, with the scope fixed The [Lakehouse Launchpad](/databricks/launchpad) is how we stand Databricks up when the job is a foundation. Six weeks of identity and environment strategy, Unity Catalog structure, ingestion through Lakeflow or Jobs, bronze silver and gold for the domains you named at the start, dashboards people asked for, a Genie space with real definitions, and runbooks your team can use. The date holds if access holds. If credentials and source-system owners take three weeks to appear, the clock reflects that, and we say so during scoping. If the discovery before the build shows six weeks is not honest for the estate, we rescope before anyone starts. Where the Launchpad replaces a warehouse, [Fabric Airlift](/accelerators/fabric-airlift) does the migration underneath: profiling, conversion, reconciliation, a reversible cutover. Where the output is an application in the workspace, [Fabric Runway](/accelerators/fabric-runway) is how that app gets preview environments and a gate on promotion. ## The thing that actually stops a handover I used to worry about slow pipelines. The conversation that kills a programme is "the only person who understands the grants is on holiday." A catalogue that matches how the teams actually work, with lineage intact as data moves, is what lets us leave. The runbooks are a deliverable for that reason. Plenty of clients keep us on for the next programme. That should be a decision, not a dependency created by a hive_metastore nobody documented. If you already have a lakehouse and you are wondering whether to rebuild it, look at the [Health Check](/databricks/health-check) first. The Launchpad is for standing something up. ## Week one We will not land a sample dataset in a demo schema and call it a platform, or wire Genie to tables whose definitions still live in a Slack thread, or grant a service principal ALL PRIVILEGES so the first job runs. I am usually in the first of those conversations when the work includes an agent. Even when it does not, the first artefact is the same: a catalogue structure you can defend, and grants that match the organisation you actually have. If that is the job, [scope a Launchpad](/databricks/launchpad). If you are still leaving a warehouse, start with the [sprint](/databricks/migration-readiness). --- ## The cost dashboard said the workspace was fine URL: https://www.techfabric.com/blog/the-cost-dashboard-said-the-workspace-was-fine Date: 2026-08-12 Author: Ihor Seleznov The finance partner sent a screenshot. The line was up and to the right, and the dashboard had a green badge next to "within forecast." She asked why, if the workspace was healthy, three teams were still complaining that jobs failed on Monday mornings. We had read-only access by Wednesday: system tables where they had them, job run history, cluster events, Unity Catalog grants. Nobody gave us production data, and nobody needed to. The green badge was telling the truth it was built to tell. Spend matched the forecast. The forecast had been written against a cluster estate that nobody had cleaned since the pilot. ## What the dashboard cannot see An all-purpose cluster sized for a load that never arrived will sit in a cost report as a successful reservation. A job that retries four times and then succeeds looks like a completed run. A schedule whose owner left in April still fires, still bills, and still writes to a table that two dashboards have quietly stopped trusting. Unity Catalog coverage that stops halfway looks fine in the catalogue browser. You click a schema and you see grants. You miss the three schemas that were never migrated off hive_metastore, and the service principal that was granted ALL PRIVILEGES because someone had a demo on a Thursday. I have lost count of how many times the first useful finding was a job that should have been serverless and was still pinned to a cluster whose autoscale floor was a guess from the original workshop. ## Two weeks, then a scorecard That work is now a named engagement, the [Databricks Health Check](/databricks/health-check). Two weeks, a fixed fee, and a written scorecard whether or not you do anything about it. We rank findings by severity and put an estimated saving against each one, with the reasoning shown, then a thirty, sixty and ninety day order. The fee stays fixed if the workspace is actually healthy, which does happen. We would rather hand a CFO a scorecard that says so than invent a remediation. We do not need write access to run it. If security wants a named scope first, we write one. ## What we do with the findings The straightforward ones your team can take: turn this job serverless, kill that schedule, tighten this grant. The scorecard is written so that is possible without us. The ones that keep coming back need a different kind of attention. A job that fails on Monday because an upstream load slipped, and the person who used to rerun it by hand is on another project. A warehouse that is the right size on Wednesday and the wrong size on month-end. Those workloads need a declared idea of healthy, and an intervention that leaves a record. That is [Fabric Radar](/accelerators/fabric-radar). Monitors carry service level objectives. When one is breached, a restart or a reroute runs as a governed action: a policy check, an audit trail, a Temporal workflow so the fix survives if the worker dies at two in the morning. We do not point Radar at a workspace we have not looked at. The Health Check is the look. ## A thing I still get wrong I used to open these with the most expensive cluster, because it makes a good chart, and it is often the finding that matters least. The expensive cluster is usually owned. Someone can tell you why it exists, even if the why is two years old. The cheap, forgotten schedule is the one that has been writing slightly wrong data into a gold table since February, and the dashboard that reads it has been "a bit off" for long enough that people stopped filing tickets. Cost is the reason we get invited. Drift is usually the reason we stay. ## If you already know it is a mess Send us the screenshot anyway. The scorecard turns a feeling about the bill into an order of work. Book the [Health Check](/databricks/health-check), or [talk to an engineer](/contact?topic=Databricks%20Health%20Check) if you want to know whether two weeks is even the right shape. --- ## Four thousand objects and nobody would name the exclusions URL: https://www.techfabric.com/blog/four-thousand-objects-and-nobody-would-name-the-exclusions Date: 2026-08-12 Author: Preetham Reddy The programme lead had a number he liked. Four thousand and something objects. He said it the way you say a fact you have already defended in two steering meetings. When I asked which of them were coming, he pointed at the number again. I have had that conversation more times than I can count. The number is easy to defend. The hard sentence is which objects are being left behind, said out loud, with a name next to it. Leaving something behind feels like a failure. Writing it down feels like giving the steering committee a stick to hit you with later. The date slips because of the objects you pretended were in scope. ## What Lakebridge will not decide Databricks Lakebridge is good at the thing it is for. It profiles the estate, converts a lot of the SQL, and helps you reconcile, and we run it rather than replacing it. What it will not do is decide whether a stored procedure that three teams depend on belongs in wave two or in a folder marked "never." It will not name the report that still points at a view whose owner left last summer. It will not map a Snowflake role hierarchy onto Unity Catalog, or turn a Teradata FastLoad job into an ingestion path. That residue is the work. On [Snowflake](/databricks/from-snowflake) it is Tasks, Streams and shares. On [Synapse](/databricks/from-synapse) it is the dedicated pool sitting next to Spark and an ADF graph. On [Teradata](/databricks/from-teradata) it is BTEQ and macros and primary indexes. The residue list changes with the source. The need to write it down does not. ## Two weeks, then a recommendation We productised those two weeks as the [Migration Readiness Sprint](/databricks/migration-readiness). They run on [Fabric Airlift](/accelerators/fabric-airlift). Every object comes out dispositioned as in scope, excluded, or owned by a named person. The exclusions are agreed, so they still hold when someone questions them in month four. There is a dependency map, a wave plan, parity criteria per object type, and a hard-object pilot chosen as the thing most likely to break, then a go or no-go with the reasoning shown. I used to be uncomfortable ending a paid two weeks with "do not start yet." A licence renewal is a terrible reason to move an estate whose dependencies you cannot draw, and telling a steering committee that in week two is cheaper than telling them in month seven. I am fine with that ending now. ## The sentence nobody wants to write "We are not migrating this." That sentence is the whole sprint, some days. A table that feeds a process nobody can name. A share whose consumer is a team in another hemisphere who will not join the call. A procedure that encodes a pricing rule the business has been meaning to rewrite since 2019. If you cannot get someone to put their name next to "leave it," it will show up in wave four as an emergency. Airlift treats the exclusion as part of the ledger, the same way it treats a converted view. Scope that lives only in a steering slide is hope. I am going to leave medallion layers and lift-and-shift versus rebuild alone here. Those are real choices and they belong after you know what you are moving. The older version of this argument, which lived on our migration post for a year, started with the target architecture. That was the wrong end. If you already know the source, open that page. If you do not, start at the [sprint](/databricks/migration-readiness). Bring the people who will be angry if their object is missing. They are the ones who have to sign the exclusions. --- ## Finance said ninety days. Operations said open account. URL: https://www.techfabric.com/blog/finance-said-ninety-days-operations-said-open-account Date: 2026-08-12 Author: Andrew Ripley The board pack had a Genie screenshot on slide four. Revenue by active customer, asked in plain English, answered in a table that looked like it had always existed. The CFO asked the same question in the meeting. The number was different. Finance had been using ninety days of transactions since the last audit. Operations had been using "open account" since the billing system was rewritten. Both definitions were in the semantic layer. Genie retrieved one of them. Nobody had decided which. Most of the arguments I walk into come down to a definition. Two teams mean different things by the same word, both are right, and the system is stuck between them. A better prompt has never once fixed that. ## The rollout fails before anyone admits it Genie demos beautifully. Then it contradicts finance, and the people who were supposed to use it start opening the old dashboard again without filing a ticket. They just stop asking. By the time someone calls it a failed rollout, the damage is social. An executive who has been embarrassed once in front of their peers will not ask a second time. You can retrain the space. Retraining will not unteach that feeling. We used to treat this as a retrieval problem: go look at the tables, tune the instructions, add a few more example questions. Sitting with both teams, getting a decision made, and encoding the decision so a machine can score it is what actually moves the number. ## Two to four weeks, then a number That engagement is [Genie Accuracy](/databricks/genie-accuracy). We write metric and definition templates for the domains that matter first, harden the space and the semantic layer, sit with the people who already know the right answer, write the questions they actually ask, and record what the answer should be. That set becomes a regression suite. You also get a before-and-after accuracy report on your own questions, and a named owner who can run the playbook after we leave. [Fabric Experiments](/accelerators/fabric-experiments) is what keeps that suite alive. A change to a definition should fail a test before it reaches a board meeting. Native MLflow runs stay in Databricks. The gate is a policy checkpoint, and a failed evaluation blocks promotion. Preetham wrote a longer version of the scoring argument in [Nobody could tell whether the agent was any good](/blog/nobody-could-tell-whether-the-agent-was-any-good). This is the Genie-shaped case of the same failure. ## Sometimes the answer is a dashboard Some questions should never have gone to natural language. A regulated number that has to match a filing, a definition that changes with the legal entity, a metric that three committees have already fought over: those want a curated tile and a caption. We will say that after two weeks if it is true. Telling you Genie is the wrong tool is cheaper than a rollout nobody trusts. The suite still helps, because the dashboard has to be right too. The difference is who is allowed to type the question. ## What we need from you The people who already argue about the number. I sit in those sessions for exactly this reason, and I will not take the briefing from a data engineer whose job was to "set up Genie." An engineer who has never watched operations on a Tuesday does not know that Tuesday's number is always wrong because of when the batch runs, and will encode that error into the ground truth. If executives have already gone quiet, start at [Genie Accuracy](/databricks/genie-accuracy). If you are earlier, and the job is standing the lakehouse up with definitions from day one, that is the [Launchpad](/databricks/launchpad). --- ## Nobody could tell whether the agent was any good URL: https://www.techfabric.com/blog/nobody-could-tell-whether-the-agent-was-any-good Date: 2026-08-11 Author: Preetham Reddy The build took nine days. The argument took two months. The agent worked, in the sense that it ran and returned answers. Whether those answers were any good was a question nobody could settle, because settling it would have needed someone to write down, in advance, what a good answer was. Nobody had. So the review meetings turned into a contest of anecdotes. Someone brought a question it got wrong. Someone else brought three it got right. Both were true and neither moved the decision an inch. That project is the normal shape of an AI project that skipped a step. ## The step everyone skips When implementation was expensive, vague requirements were survivable. A senior engineer would start building, hit the ambiguity in week two, and come back with questions. The build doubled as the discovery. Slow, but it worked. Implementation is not expensive any more. Decent tooling turns a loose brief into a working agent in days, which means the ambiguity never surfaces. It gets implemented instead. Confidently, at speed, in the wrong direction. The failure mode has flipped. It used to be that you could not build the thing fast enough. Now you can build the wrong thing before anyone notices it is wrong. ## What writing the scoring first costs you On an AI engagement we now write the scoring before anything else. A rubric, meaning a plain statement of what a right answer looks like, specific enough that software can check it, plus an environment that can run the check. Then we build something to score. This is unpopular for roughly ten days. It looks like process, and nobody wants to spend the opening fortnight of an exciting project writing definitions. After those ten days it stops being close. Every change becomes measurable, so the arguments end. You are no longer asking whether the system feels better this week. You run the suite and read the number. Those two months of review meetings never happen, because there is nothing left to have opinions about. ## Deciding what counts as correct Building eval infrastructure is about a week of engineering. Deciding what counts as correct is where the work actually lives, and most of that is a conversation. We were brought into a natural language analytics rollout that executives had quietly stopped using. Everyone assumed retrieval: the system must be pulling the wrong data. It was not. Finance defined an active customer as one who had transacted in the last ninety days. Operations defined it as one with an open account. Both were defensible, both were in use, and the system answered accurately under whichever definition it happened to retrieve. No model fixes that. Someone has to sit with both teams, get a decision made, and encode the decision. It is a governance conversation that happens to produce a technical artifact. Which is the practical case for putting senior people on site rather than taking a specification away and coming back with software. You cannot write a rubric for a business you have not sat inside. An engineer who has never watched the operations team on a Tuesday does not know that Tuesday's number is always wrong because of when the batch runs, and will cheerfully encode that error into the ground truth. ## Where reinforcement learning fits Later than people want it to. Every optimisation method needs a signal saying this answer beat that one. Reinforcement learning on the model, an automated loop tuning the workflow around it, take your pick. They all need a way to score. No rubric and no environment means no signal, which means you are not ready for any of it. Almost every team that asks us about RL has neither. They want to skip to the part that sounds like frontier research, from a position where nobody can yet say whether the system works at all. Build the rubric. Ordinary iteration by good engineers then gets you most of what is available, and when that stops paying, automated optimisation has something real to climb. Do it the other way round and you are hillclimbing a hill nobody measured. ## What this does to team size Our delivery teams went from ten people to three. Writing the criteria down is a bigger part of that than any code generation. Ten people were never ten people of output. Most of that headcount was coordination: keeping everyone current, re-deciding things already decided, reviewing work whose acceptance criteria lived in somebody's head. Put the criteria somewhere a machine can check them and a large amount of that stops being necessary. The three who remain are doing the part that did not get cheaper. ## If you are hiring for this The job description changed and most postings have not caught up. Hiring posts still ask how much of this you can build. The scarcer skill is telling when it is working. An engineer who can produce a working agent in a week is now common. One who can sit with your operations lead, extract what a correct answer actually is, notice that two departments disagree, get that resolved, and turn it into something a machine can score, is rare. ## Something to try this week Take the AI project your organisation is currently arguing about. Leave the model alone. Write down twenty questions it should answer, with the correct answers beside them, agreed by the people who own the domain. One of three things happens. The system turns out to be fine and the argument was about something else. Or it is wrong in a specific way you can now see and fix. Or, most often, your organisation cannot agree on what the correct answers are, which was the real problem all along and had nothing to do with AI. Any of those beats another sprint of prompt tuning. --- *If this is the argument you are currently having, [talk to one of our engineers](/contact?topic=Genie%20Accuracy). We build [AI systems on Databricks](/services/ai-systems). The named engagement for an untrusted Genie space is [Genie Accuracy](/databricks/genie-accuracy), and the evaluation harness underneath it is [Fabric Experiments](/accelerators/fabric-experiments).* --- ## Leveraging PyTest for Data Quality Checks Directly within Databricks URL: https://www.techfabric.com/blog/pytest-for-databricks-data-quality-checks Date: 2026-07-22 Author: Ihor Seleznov ## Main Article Focus This article thoroughly covers how QA and data engineering teams can practically implement PyTest to automate data quality checks in Databricks environments, focusing on clear, maintainable, and efficient practices that scale from local notebooks to production CI/CD. ## Article Description This guide demonstrates how QA engineers and SDETs can integrates cleanly PyTest logic into Databricks notebooks to automate data quality verification at every stage of the pipeline. You can learn practical approaches to structuring test code, handling real-world edge cases, and optimizing workflows for reliable, efficient validation of big data in medallion architecture. ## Introduction In large-scale data-driven organizations, poor data quality can cost millions, lead to regulatory fines, or compromise customer trust. The modern data stack, built on platforms like Databricks, enables businesses to extract insights at speed - but only if their data is reliable and trustworthy. Ensuring this quality is no longer a manual, reactive process. It requires test automation, tight collaboration between QA and data engineers, and frameworks that handle big data on a scale. PyTest, the de facto standard for Python testing, is uniquely suited for this job when harnessed properly in the Databricks environment. This article is a practical, example-driven guide to implement reliable, maintainable, and efficient data quality checks - directly inside Databricks notebooks using PyTest patterns and real-world data. ## Why PyTest for Data Quality? PyTest stands out for its simplicity, modularity, and ability to scale from unit to integration tests. For data quality, it offers: - **Readable assertions** that make business rules and data contracts explicit. - **Powerful parametrization** for running the same test logic across multiple datasets or business rules. - **Extensible fixtures** for efficient setup/teardown and reusability. - **Rich reporting and integration** with CI/CD, enabling immediate feedback in a collaborative team setting. - **Graceful error handling**, essential for dealing with real-world data unpredictability. With PyTest in Databricks, QA and data engineers can: - Shift left - detect data issues earlier in the pipeline, even during development. - Share a common test language and toolkit across teams. - Build tests that evolve with data and business logic, not against them. ## Writing Thorough Data Quality Tests: Principles & Practical Examples ### 0. Before we begin, we need some data to apply the tests to For this purpose, I'll create some imperfect data that contains errors. In your case, you can use your own test data or real project data. ![Databricks notebook cell showing the bronze DataFrame schema and confirmation that dummy test data was created](/blog-media/ee733b29-6a610a87a4c6ced83828fc97_01-dummy-data-schema-creation.jpeg) *Generating imperfect sample data to exercise the data quality tests.* ### 1. Now we're ready to structure Data Quality Tests (Bronze Layer) I recommend writing each check as a function, with strong docstrings and precise error messages. Under the functions, you can call each function in a code block to see a check-specific report: ![Databricks notebook showing failed data quality test cells with AssertionError messages and Diagnose or Debug options](/blog-media/127283de-6a610a87a0687451a243400a_02-notebook-quick-fix-assertion-errors.jpeg) *Individual check functions surface precise, business-readable failure messages.* Or group-up the function calls, to see the full report: ![Python code and console output for the full bronze layer data quality check report](/blog-media/87030efc-6a610a8adf6fce4185c96446_03-bronze-layer-full-test-report.jpeg) *Grouping check functions together produces one consolidated bronze-layer report.* ### 2. With this you should be able to Handle Edge Cases and Failures - Cover nulls, wrong types, duplicate keys, invalid values. - Out-of-range ages, bad emails, missing countries, etc. - Test results quantify exactly how many rows are affected and where. And one more thing: Use PyTest fixtures and function arguments for setup and reusability! ![PyTest fixture code example defining a bronze_df fixture and a row count test](/blog-media/fd36b310-6a610a87f0d1df3b35bad5fd_04-pytest-fixture-example.jpeg) *Using PyTest fixtures for reusable setup across data quality tests.* ### 3. Cleansing Data: Bronze to Silver Promotion Based on your verification logic, you understand what cleansing data actions must be applied to the table data. In our case, cleansing can be done like this: ### 4. Silver Layer Checks: Confirm Cleansing Worked It's not done yet, you still have to confirm the cleansing worked successfully and the data you have is reasonable and valid from the business perspective. For this, we create quite similar checks as we did for the bronze layer, and ensure the data we have is corresponds with your business needs. ![Python code and console output for the full silver layer data quality check report, all checks passing](/blog-media/c437e419-6a610a877c83d0ba2e7b83a5_05-silver-layer-full-test-report.jpeg) *Silver-layer checks confirm the cleansing logic worked as expected.* ### 5. Reliability and Error Handling - Catch and log assertion failures. - Use explicit, business-readable messages for every check. Example: try: test_unique_user_id() except AssertionError as e: print(f"Data quality failure: {e}") ## Conclusion Integrating PyTest-style data quality checks directly into Databricks notebooks creates a scalable, maintainable foundation for reliable analytics. By automating validation at every pipeline layer, QA and data engineering teams can surface data issues early, accelerate remediation, and confidently deliver business insights. But the value of automated testing doesn't end in a notebook. The next level is to embed these checks into your team's daily workflows and continuous delivery pipelines. To see these further data enhancements and integration stay tuned with our Techfabric blog. ## Final Thoughts By integrating PyTest-driven validation into Databricks and your wider DevOps practices, you transform data quality from an afterthought into a daily, automated habit - ensuring that every insight and decision is built on trusted data. When the question is whether a model or a Genie answer is better than last week's, the same instinct lives in [Fabric Experiments](/accelerators/fabric-experiments). When the question is what the workspace is spending to produce those answers, start with the [Databricks Health Check](/databricks/health-check). --- ## How QA Engineers Can Use Databricks Repos for Better Test Automation Workflows URL: https://www.techfabric.com/blog/databricks-repos-for-qa-test-automation Date: 2026-07-22 Author: Ihor Seleznov ## Introduction: From Notebooks to Collaborative, Scalable Test Automation In modern data engineering and analytics, reliable and high-quality data pipelines are mission-critical. Poor data quality can result in faulty business decisions, regulatory breaches, and diminished customer trust. While many teams begin by using Databricks notebooks for exploratory data validation and ad-hoc tests, this approach soon becomes limiting as projects scale and the need for reproducibility, review, and automation increases. To overcome these challenges, leading QA and data engineering teams use Databricks Repos. Integrating test logic, data quality checks, and orchestration workflows with Git-based repos unlocks a higher level of collaboration, version control, and production readiness. This article provides a step-by-step overview of operationalizing data quality testing using Databricks Repos, enabling scalable, maintainable, and team-oriented test automation. ![Screenshot of the tfproject_igs_databricks repo folder structure in VS Code showing tests, src, fixtures, and docs directories](/blog-media/5b01fc90-6a6108aa4eed51174cd47af4_01-repo-folder-structure.jpeg) *Recommended Databricks Repo folder structure for test automation projects.* ## Why Move Test Automation to Databricks Repos? - **Collaboration**: Team members work from a common, reviewed codebase - eliminating fragmented or orphaned notebooks. - **Version Control**: Every change is tracked, reviewed, and can be reverted as needed. - **CI/CD-Readiness**: Test logic stored as code, not just in notebooks, is readily automated and integrated with enterprise workflows. - **Reusable Components and Sustainable Code**: Modular fixtures, utility functions, and validation logic are centrally organized, simplifying updates and promoting consistent testing standards across projects. - **Separation of Concerns**: Notebooks serve as orchestration and reporting layers; logic is maintained in the repo. ## Structuring Databricks Repo for Test Automation A new Git-based repo in Databricks can be created or cloned, with the following recommended directory structure: - All test logic is stored in tests/. - Orchestration or data cleaning code is organized in src/. - Fixtures and helpers are kept in fixtures/. - Documentation is centralized in docs/. ## Writing Modular, Reusable Data Quality Tests Test logic is written as Python functions in the tests/ folder. Here you can re-use / transfer the tests which were written before in Databricks Notebooks, as we had done it here: %article 1 link% Similar structures are used for test_silver_quality.py and test_gold_aggregation.py, with appropriate business rules and target tables. ## Executing and Reporting Tests in Databricks Notebooks ### Importing and Running Test Functions A Databricks notebook can serve as an orchestrator for data quality checks. The recommended approach involves importing the test modules, injecting the Databricks global spark object, and executing each test, as demonstrated below: ![Databricks notebook importing and running bronze layer data quality tests with pass and fail results](/blog-media/3b3c0f2d-6a6108aaa910091eaca81076_02-notebook-test-execution-results.jpeg) *Orchestrating bronze-layer data quality tests from a Databricks notebook.* This approach can be repeated for silver and gold levels by importing the relevant modules. ## Sharing and Team Collaboration - All reusable code is versioned in the repo, accessible to any team member with appropriate permissions. - Orchestrator notebooks, such as bronze_data_quality_tests, should be moved to /Workspace/Shared for organization-wide visibility. - Permissions can be managed at the notebook or folder level. ![Databricks Workspace Shared folder listing qa_pytest orchestration notebooks](/blog-media/0378634e-6a6108aadda5f24fedfc252c_03-workspace-shared-notebooks.jpeg) *Orchestrator notebooks moved to /Workspace/Shared for team-wide visibility.* - Team members clone the repo into their own workspace and use shared notebooks, ensuring all are using the latest test logic. ## Collaboration, Review, and Continuous Improvement - New tests, improvements, or bug fixes are contributed via Git workflows - branches, pull requests, and code reviews. - The repository serves as the authoritative reference point for all test automation and quality assurance activities, ensuring alignment and reducing fragmentation across the team. - Notebooks function as transparent dashboards, while logic and validation live in versioned code. ## Team Onboarding and Usage Overview 1. Clone the repository (tfproject_igs_databricks) from Git into a Databricks workspace. 2. Move or copy orchestration notebooks to /Workspace/Shared for visibility. 3. Execute data quality checks by opening a shared notebook and running the provided code cells. 4. Contribute improvements by updating test logic in the repo and opening pull requests. 5. Optionally, set up Databricks Jobs for automated or scheduled runs, or integrate with CI/CD for further automation. ![Databricks Git repo view of tfproject_igs_databricks showing the main branch](/blog-media/3ec01edb-6a6108aa79f1b1d4412aa3ae_04-git-repo-main-branch.jpeg) *The tfproject_igs_databricks repo synced via Databricks Git integration.* ![Databricks Git panel showing Changes and Settings tabs with a Create Branch option](/blog-media/a6cb3539-6a6108aa4eed51174cd47a78_05-git-changes-settings.jpeg) *Team members can branch directly from the Databricks Git panel.* ## Benefits and Path Forward - **Team-Driven Quality**: Logic is accessible, reviewed, and reusable. - **Scalability**: New tests, layers, and data domains can be added by extending the repo. - **Production-Readiness**: This structure serves both interactive QA and future CI/CD or scheduled automation with minimal adjustments. - **Onboarding Simplicity**: New contributors are ready to participate quickly - clone the repo, access shared notebooks, contribute improvements. - **Automation Potential**: HTML reports, alerting, and management dashboards can be layered on as requirements grow. ## Conclusion Operationalizing data quality testing through Databricks Repos offers QA and data engineering teams a reliable, collaborative, and scalable workflow. By separating logic from orchestration, adopting code review and version control, and leveraging the shared workspace, organizations are better positioned for automation, auditability, and rapid onboarding. As data needs and teams grow, this approach supports both interactive exploration and production-grade automation, enabling high-quality data, every day. ![Terminal output of bronze layer data quality check results showing pass and fail rows](/blog-media/0073a4d9-6a6108aaf3842a5ae3c4b867_06-bronze-data-quality-results.jpeg) *Sample bronze-layer data quality check output.* ![Terminal output of silver layer data quality check results, all checks passing](/blog-media/7b706c0b-6a6108aaa0687451a241f9a6_07-silver-data-quality-results.jpeg) *Silver-layer checks confirm cleansing succeeded, with all tests passing.* A repo of checks is how a team keeps a pipeline honest. A workspace whose jobs, clusters and Unity Catalog coverage have drifted is a different problem, and that is the [Databricks Health Check](/databricks/health-check). --- ## Governance You Can Actually Ship URL: https://www.techfabric.com/blog/governance-you-can-actually-ship Date: 2026-04-16 Author: TechFabric ## **Five Months** August 2, 2026. That's when the EU AI Act's general application requirements take effect. High-risk AI systems must comply. The penalties are severe: up to €35 million or 7% of global annual revenue, whichever is higher. Colorado's AI Act takes effect even sooner, June 30, 2026. It requires developers and deployers of high-risk AI systems to use reasonable care to avoid algorithmic discrimination. Illinois, Texas, and several other states have similar legislation moving through their legislatures. The compliance experts say organizations need a minimum of five months to prepare. Most haven't started. Over half lack a systematic inventory of the AI systems running in their environment. 40% have unclear risk classifications for the systems they do know about. Only 37% have any governance policies in place. And this is just the official picture: the systems that IT sanctioned and procured. In [our first article in this series](/blog/the-most-expensive-software-nobody-uses), we described how 49% of employees use AI systems that IT hasn't approved. The regulatory exposure from systems you don't know about is impossible to quantify because, by definition, you can't audit what you can't see. ## **The Document Problem** The standard enterprise response to a compliance deadline is to produce a document: a governance framework, a risk assessment matrix, an AI ethics policy, an acceptable use guide. I'm not dismissing this work, some of it is genuinely necessary. You need a risk classification methodology. You need a way to inventory and categorize your AI systems. You need policies that describe your governance principles. The problem is that for most organizations, this is where it stops. The document goes into a SharePoint folder. Someone schedules a quarterly review. The AI systems running in production continue operating with whatever permissions and logging they were configured with on day one. This is the same pattern from every compliance wave of the last twenty years. SOX produced binders full of controls that existed on paper and in auditor presentations. GDPR produced privacy policies that described data handling practices that weren't reflected in the actual data architecture. In both cases, the compliance artifact and the operational reality diverged almost immediately, and the gap kept widening because nobody owned the connection between the two. AI governance is heading for the same outcome, and the consequences are steeper because AI systems don't just store and process data, they make decisions, generate outputs, and increasingly take autonomous action based on that data. ## **The Gap Between Policy and Architecture** In [our last article](/blog/the-agent-that-deleted-production), we walked through the Amazon Kiro incident. An AI agent with operator-level permissions deleted a production environment because nobody had built the infrastructure controls to prevent it. Amazon presumably had policies about production access. What they didn't have was architecture that enforced those policies in real time. That gap, between what the governance document says and what the system actually does, is the central problem of enterprise AI governance in 2026. And I keep coming back to a simple test: if your AI governance can be violated without anything in your infrastructure noticing, you don't have governance. You have documentation. Here's what violation looks like in practice: The policy says agents should operate with least-privilege access. The agent was provisioned with broad permissions during development because it was easier, and nobody reduced them for production. The policy says all AI interactions should be logged and auditable. Logging was configured for the sandbox environment and wasn't updated for production because nobody owned that transition. The policy says sensitive data shouldn't leave the corporate perimeter. The AI platform sends data to a third-party API for inference, and the data residency clause in the vendor contract doesn't match what the system actually does. Each of these is a real pattern from real engagements. Each one represents a governance document that's technically accurate and operationally useless. ## **What "Governance by Design" Actually Means** We use this phrase, "governance by design", and I want to be specific about what we mean because it's at risk of becoming another empty buzzword. Governance by design means the governance rules are enforced by the infrastructure, not by human compliance checks. The same way a firewall enforces network policy by blocking unauthorized traffic rather than sending a memo asking people not to visit certain websites. The same way database permissions enforce access control by returning "access denied" rather than relying on a policy document that says "only authorized users should query the customer table." The governance and the architecture are the same thing. You can't have one without the other. In practice, this means every design decision about your AI deployment includes a corresponding governance decision. Where does the agent execute code? In a sandboxed environment with explicit resource and network boundaries. How does the agent access credentials? Through a secrets management layer that scopes access, rotates keys, and logs every retrieval. What data does the agent see? Only what its permission scope allows, enforced at the infrastructure level. What happens when the agent attempts a destructive or high-impact operation? A mandatory review gate fires before execution. ## **How Fabric Does This** This is why we built Fabric. Our senior engineers spent years managing production infrastructure before they worked on AI systems, and the gap between standard DevOps discipline and how most AI agents get deployed was, honestly, alarming to them. Fabric exists to close that gap. **Governance ingestion.** Fabric starts by ingesting your governance structure: your compliance requirements, your data classification policies, your permission hierarchies, your regulatory obligations. This isn't a one-time setup step. It's a living configuration that adapts as your governance evolves. When your compliance team updates a data residency requirement, that change propagates into how Fabric scopes agent access, not into a document that an engineer might read six months later. **Sandboxed code generation.** When AI agents generate code in Fabric, that code executes in isolated, sandboxed environments with explicit resource boundaries. The sandbox is scoped to specific systems, specific data, and specific operations. An agent working on your logistics optimization can't accidentally (or intentionally) access your HR data because the infrastructure physically prevents it. This is the same principle behind container isolation in production Kubernetes environments, battle-tested patterns applied to a new context. **Private secrets management.** Credentials, API keys, tokens, and certificates are managed inside your perimeter using the same patterns that infrastructure teams have relied on for years. Scoped access, each agent sees only the credentials it needs. Automated rotation, keys expire and regenerate on schedule. Full audit trails, every credential access is logged with context. Nothing flows through external systems. Nothing leaves your infrastructure. **Local Model Context Protocols (MCPs).** Your business context (the operational data, the business rules, the customer information that agents need to work effectively) stays in your environment. MCPs run locally, keeping the context under your compliance framework and your data sovereignty requirements. The agent's knowledge of your business never passes through infrastructure you don't control. **Continuous runtime enforcement.** Every governance rule is enforced at runtime, continuously. Not checked periodically, not audited quarterly. Running. Permission boundaries are active on every request. Scope constraints are enforced on every operation. Every agent action (what it accessed, what it generated, what it attempted) is logged automatically because the logging is part of the infrastructure, not an optional configuration someone has to remember to enable. **Mandatory review gates.** Destructive operations, high-impact decisions, actions that affect production systems, all require explicit approval before execution. The agent can propose the action. It can't execute it without a human checkpoint. This is the exact safeguard that was missing in the Kiro incident, implemented as infrastructure rather than policy. ## **The Compliance Connection** The organizations we're working with that are ahead of the August deadline share a common characteristic: they're treating compliance as an output of their architecture, not a parallel workstream. When your AI infrastructure enforces governance at the runtime level (with audit trails, scoped permissions, and documented decision points) the compliance artifacts generate themselves. The auditor asks "how do you ensure least-privilege access?" and the answer is "here's the infrastructure configuration, and here are the logs showing it's enforced on every request." Not "here's a policy document, and here's our quarterly review process." We're working on this with a financial services client right now. Their compliance team had produced a comprehensive AI governance framework: a good document, thorough and well-reasoned. The problem was that their deployed AI systems didn't reflect any of it. Agents had broad data access because that was the default. Logging existed but wasn't configured for the production environment. Permission scopes hadn't been updated since the initial sandbox deployment. The governance framework described an ideal state that bore little resemblance to what was actually running. We started by mapping their governance requirements into Fabric's configuration, translating policy statements into infrastructure enforcement. "Agents should only access data relevant to their function" became scoped permission boundaries enforced at the infrastructure level. "All agent interactions must be auditable" became continuous, automatic logging with context-rich audit trails. "High-impact operations require human approval" became mandatory review gates that fire before execution, with no override path. The compliance team's document didn't change. What changed was that the infrastructure now enforces what the document describes. This doesn't eliminate the need for governance documentation. You still need risk assessments, classification methodologies, and policy frameworks. But the documentation describes what the architecture actually does rather than what the architecture should theoretically do. The gap between policy and reality closes because they're the same system. ## **The Series in Full** This series has followed a thread that started in our [first series](/blog/the-build-vs-buy-decision) and gets more urgent with every month. [Enterprise copilots don't solve the problems that matter](/blog/the-most-expensive-software-nobody-uses), so employees find tools that do, creating a shadow AI exposure that most organizations can't see and can't audit. [AI agents are reaching production without production-grade governance](/blog/the-agent-that-deleted-production), because the teams deploying them don't think in infrastructure terms. The Kiro incident is a preview of where this ends without the right engineering discipline. And governance frameworks that live in documents instead of architecture will fail the same way every previous compliance framework has failed: by describing a reality that doesn't match what the systems actually do. The fix for all three problems is the same. Purpose-built AI infrastructure, designed by engineers who understand both the AI and the production environment it runs in, with governance that's enforced at the architecture level because it *is* the architecture. That's what we built Fabric to be. And it's how our forward-deployed teams deploy every system we ship. The mutation pipeline that makes every state change auditable is [Fabric Platform](/accelerators/fabric-platform). If the system in question is a Genie space or an agent whose answers nobody can score, start with [Genie Accuracy](/databricks/genie-accuracy). [*Schedule a conversation with an engineer who ships governance this way*](/contact)*.* ‍ --- ## The Agent That Deleted Production URL: https://www.techfabric.com/blog/the-agent-that-deleted-production Date: 2026-04-07 Author: TechFabric ## What Actually Happened In December 2025, Amazon's AI coding agent Kiro was assigned a routine task: fix a minor issue in AWS Cost Explorer within the Beijing region. The agent analyzed the problem and determined that the most efficient resolution was to delete the production environment and recreate it from scratch. The result was a thirteen-hour outage across an AWS China region. Amazon's official response attributed the failure to user error, specifically misconfigured access controls, rather than to the AI. Four anonymous sources inside Amazon told the Financial Times a different version of events. Weeks before the incident, senior VPs had issued what employees called the "Kiro Mandate," requiring 80% weekly usage across development teams. The system operated with operator-level permissions. There was no mandatory peer review before changes went to production. There was no human-in-the-loop checkpoint before destructive actions: the kind that deletes an environment and starts over. A second incident followed shortly after, involving Amazon Q Developer, under nearly identical circumstances. ## The Permissions Problem I've been talking to our senior engineers about this, and their reaction is consistent: every one of them has a visceral response, and none of them are surprised. If you've managed production infrastructure for any length of time, you've internalized a set of rules about access control that become second nature. You don't give a deployment pipeline unrestricted write access to production databases. You don't let automated systems execute destructive operations without a review gate. You scope permissions to the minimum required for the task. You treat secrets (credentials, API keys, certificates) as sensitive assets with their own access controls and rotation policies. These principles aren't theoretical. They're the result of decades of real incidents where someone (or something) with too much access did exactly what Kiro did: found the shortest path to a solution without understanding which paths were off limits. Kiro didn't malfunction. It did precisely what it was designed to do. The failure was that nobody applied basic infrastructure discipline to the permissions model. The agent had operator-level access because someone configured it that way, and nobody built the guardrails that would have caught a "delete production" command before it executed. ## Why This Keeps Happening 74% of organizations are planning agentic AI deployments within the next two years. Only 21% have what Gartner considers mature governance for autonomous systems. Nearly half, 47%, of organizations that have already deployed AI agents report observing unintended or unauthorized behavior. These numbers describe a specific gap, and it's worth understanding the shape of it. The teams deploying AI agents don't typically come from infrastructure or DevOps backgrounds. They're ML engineers, data scientists, and application developers who are brilliant at model training and prompt design but haven't spent a decade thinking about production access patterns, blast radius containment, or what happens when an automated process has more permissions than it needs. There's a parallel to the early days of cloud adoption here. When companies first started moving workloads to AWS and Azure, they gave application teams direct access to provision resources. Those teams built what they needed, and accidentally left S3 buckets open to the internet, provisioned databases without encryption, and created IAM roles with wildcard permissions because that was the fastest path to a working demo. It took years and a steady stream of breaches before "cloud security" became a discipline unto itself, with infrastructure teams reviewing every deployment before it went live. We're at the same inflection point with agentic AI, except the consequences move faster because agents act autonomously. In previous articles, we described the forward-deployed team model, senior engineers embedded in your operations, building systems grounded in your actual constraints. One of the things we didn't emphasize enough is that our engineers carry deep DevOps and infrastructure experience. That experience is what makes them think about permissions boundaries, sandboxed execution, and secrets management *before* an agent gets anywhere near production data. Not because they read a governance checklist, but because they've been burned by the same class of problem enough times that the discipline is automatic. If this can happen at Amazon, the company that *built* the cloud infrastructure the rest of us run on, what makes you think your organization is immune? Amazon doesn't lack engineering talent or infrastructure expertise. And it still happened. The question every CTO should be asking right now isn't "could this happen to us?" It's "what's stopping it?" ## The Agentic AI Governance Deficit Gartner projects that over 40% of agentic AI initiatives will be scrapped by 2027, not because the AI doesn't work, but because of rising costs, unclear value, and inadequate risk controls. The technical capability is ahead of the governance architecture. We're seeing this firsthand with clients. Organizations that have been running AI experiments in sandboxes for a year are now pushing to deploy agents in production. The conversation shifts from "can we build this?" to "how do we deploy this safely?", and the teams doing the building often don't have a good answer. The common response is to write a governance framework. An AI ethics committee produces a document. A risk assessment gets filed. Someone creates a permissions policy that describes what agents should and shouldn't be able to do. The document goes into a SharePoint folder and gets reviewed quarterly. Meanwhile, the agents are running in production with whatever permissions they were given during development, because nobody translated the policy into enforcement. ## What Engineering-Grade Governance Looks Like This is where we spend a lot of our engineering time, and it's where Fabric, our purpose-built AI infrastructure, came from. The first engineering decision, before you write a single line of agent code, is identifying which integration points in your infrastructure require deterministic behavior and which ones benefit from adaptive reasoning. A delete command on a production environment, a funds transfer, a permissions change, these need to behave 100% predictably, with guardrails that enforce strict adherence at any cost. An agent analyzing anomalies in your operational data, synthesizing patterns across contracts, reasoning about edge cases your rules engine hasn't seen before, that adaptive behavior is a feature, not a design flaw. The Kiro incident happened because nobody made this distinction. The agent's adaptive reasoning was applied to a task that demanded deterministic control. Fabric was designed from the ground up around this principle and around a broader one that our engineers consider obvious but that most AI deployments ignore: AI agents are workloads. They need the same infrastructure discipline as any other automated system that touches production data and production systems. **Sandboxed code generation.** When an AI agent generates and executes code in your environment, that execution happens in a sandboxed context with explicit resource boundaries. The agent can't reach systems or data outside its scope because the infrastructure physically prevents it, not because a policy says it shouldn't. **Scoped permissions.** Every agent operates under a permissions model that mirrors the least-privilege principle from infrastructure security. Access to specific datasets, specific APIs, specific operations. Destructive operations require explicit approval gates. The agent can't escalate its own permissions. **Private secrets management.** Credentials, API keys, certificates, and tokens stay inside your infrastructure. They're managed through the same secrets management patterns that DevOps teams have been using for production systems for a decade, scoped access, rotation policies, audit trails. They never flow through third-party systems or leave your perimeter. **Local MCPs.** Your data stays sovereign. Model Context Protocols run locally in your environment, keeping the context your agents work with (your business logic, your operational data, your customer information) under your control and your compliance framework. **Runtime enforcement.** The governance isn't a quarterly review or a dashboard someone checks periodically. It's enforced at runtime, continuously. Every agent action is logged, every permission boundary is active, every scope constraint is enforced in real time. The governance architecture and the production architecture are the same thing. None of these are novel engineering concepts. Every principle here is borrowed directly from how senior DevOps engineers have managed production infrastructure for years. The difference is that most AI deployments skip this step entirely because the teams doing the building don't think in infrastructure terms. ## The Team Problem Behind the Governance Problem In [our last article](/blog/the-most-expensive-software-nobody-uses), we described how generic copilots fail because they don't solve the operational problems that actually matter: the 20% that's specific to your business. The governance version of that same problem: generic governance frameworks fail because they're written by people who understand compliance but not infrastructure. An AI governance document that says "agents should operate with least-privilege access" is about as useful as a security policy that says "employees should use strong passwords." Both are true. Neither tells you how to enforce it. Enforcement requires engineers who understand both the AI system and the infrastructure it runs on. Engineers who know how to design permission boundaries at the infrastructure level, not just describe them in a document. Engineers who've built production systems with secrets management, blast radius containment, and automated rollback, and who apply that same rigor to AI agent deployments. This is why we staff our teams with senior engineers who've spent years in DevOps and infrastructure roles before working on AI systems. When one of our engineers designs an agentic deployment, the permissions architecture is the *first* conversation, not an afterthought. What can the agent access, what can it modify, what requires human approval, and what happens when it attempts something outside its scope? These aren't governance checkboxes. They're engineering decisions that get baked into the infrastructure on day one. The Kiro-style failure mode, an agent with too much access doing something destructive because nobody built the guardrails, is a solved problem if you have the right people building the system. It's a catastrophic problem if you don't. ## Where This Goes The agentic AI wave isn't slowing down. 74% of organizations are committed to deployment timelines. The economic incentives are real, autonomous agents that can handle complex multi-step workflows represent a genuine productivity shift. We're building agentic systems for our clients right now, and when the governance architecture is right, the results are remarkable. The agents move fast precisely *because* the boundaries are clear. The sandbox gives them freedom to iterate within a safe perimeter, which means our engineers spend their time refining the agent's judgment rather than cleaning up the damage from an unconstrained one. But the gap between "the agent works in the sandbox" and "the agent is safe in production" is as wide as it's ever been. The teams that close that gap will be the ones with engineers who think about infrastructure security as reflexively as they think about model accuracy. The Kiro story doesn't end with Amazon, it's a preview of what's coming for every organization that deploys agents with the permissions architecture they used in their research environment. And one more thing worth paying attention to: while enterprises are still debating governance frameworks, tools like OpenClaw are giving startups and small teams the ability to deploy autonomous AI agents with almost no friction. Yes, these tools are immature, Cisco's security team found data exfiltration and prompt injection in third-party OpenClaw skills just weeks ago, and the skill repositories lack adequate vetting. They're dangerous in the ways you'd expect from early-stage, move-fast tooling. But remember the iPhone story from our [last article](/blog/the-most-expensive-software-nobody-uses). These tools will harden quickly, the security will mature, and the ecosystems will professionalize. And while your organization is still running governance committee meetings, the companies in your rearview mirror, or the ones not even on the road yet, are building with their pedal to the metal. The governance work you do now isn't just about preventing the next Kiro incident. It's about making sure you can move as fast as the market demands when the tooling catches up. In our next piece, we'll go deeper on what it means to ship governance that actually works: the regulatory deadlines that are making this urgent, and why the organizations getting it right are treating governance as something you build into architecture rather than something you write into documents. Want to pressure-test your own systems against this? [**Schedule a conversation with an engineer who builds this way.**](/contact) ‍ --- ## The Most Expensive Software Nobody Uses URL: https://www.techfabric.com/blog/the-most-expensive-software-nobody-uses Date: 2026-03-16 Author: TechFabric ## If You Were There, You Remember This Fight Steve Jobs brings his vision for a revolutionary mobile device to market. Consumers want it. Corporate IT says absolutely not. If you were anywhere near enterprise technology at the time, you remember the arguments. Apple was the design company, not the enterprise company. Everyone typing away on their Blackberry or Palm Treo remembers coveting thy neighbor's iPhone, but IT had their reasons. Those were the enterprise devices: IT could manage them and compliance could audit them. The fact that employees wanted something better was irrelevant to the procurement decision. On the other side, employees had a device in their personal life that was years ahead of what IT issued for work. They couldn't check corporate email on it, couldn't access documents, couldn't do any of the things they could obviously do better on a modern phone. So they started using their iPhones anyway and hoped nobody noticed. But Apple didn't ask global IT departments to relax their policies. Apple built enterprise-grade security and tooling directly into the iPhone (device management APIs, hardware encryption, enterprise provisioning) and relied on their best sales force: happy customers who sold the product up the chain, forcing corporate IT to take another look. MDM platforms matured around a device people genuinely wanted to use. IT didn't capitulate. Apple met their requirements *and* the users' requirements at the same time. Anyone who lived through the BYOD era recognizes what's happening right now with enterprise AI. The dynamics are identical. IT is spending millions on sanctioned solutions that employees don't want to use, while the consumer alternatives that actually solve problems spread through the workforce unchecked. Except this time, the unsanctioned tools don't just store documents on an unmanaged device. They reason about your data, generate outputs based on it, and increasingly take autonomous actions, *all outside your governance perimeter.* ## The Copilot Adoption Problem The enterprise AI spending numbers are enormous. A 20,000-person organization pays north of $7 million annually for Microsoft 365 Copilot at list price. Microsoft is bundling it into enterprise agreements, and customers are reporting mandatory 25% cost increases on typical $10 million contracts to include AI capabilities they didn't ask for. The adoption numbers don't match the spending. Microsoft 365 Copilot has roughly 15 million paid seats out of 450 million-plus total, about 3.3% penetration. Among workers who have access, daily usage hovers around 30%. And here's the number that should concern every CTO who just signed a renewal: Copilot's share among U.S. paid AI subscribers dropped from 18.8% to 11.5% between July 2025 and January 2026. **A 39% contraction in six months.** When researchers gave workers access to multiple AI platforms and let them choose, 76% chose ChatGPT. 18% chose Gemini. 8% chose Copilot. To be clear, this isn't a Microsoft-specific problem, I'm using Copilot as the example because the data is public and the scale is massive. The pattern is the same across enterprise AI platforms: organizations buy licenses, employees don't use them, and the gap between what IT procures and what workers actually need keeps widening. ## The Shadow AI Problem Employees aren't sitting idle. They're doing what everyone did with their iPhones in 2008, finding something that works and hoping nobody notices. 49% of workers admit to using AI systems that IT hasn't sanctioned. The number is almost certainly higher, because "admit" is doing a lot of work in that sentence. 69% of C-suite executives say they know it's happening and they're fine with it, which tells you something about how seriously organizations are treating the governance gap they're creating. One in three employees is feeding enterprise data (research, client information, competitive analysis, proprietary business logic) into systems that IT can't audit, can't scope, and can't shut down without knowing they exist. Three out of four CISOs have discovered unsanctioned AI running in their environments, which means one in four hasn't found it yet. The financial exposure is measurable. Shadow AI added $670,000 to the average cost of a data breach in 2025, according to IBM's annual report. That's the cost of the breach itself, not the cost of the lost intellectual property, the competitive intelligence that walked out through a consumer API, or the compliance violation that nobody knew was happening. ## Why This Keeps Happening The temptation is to blame employees for being reckless. That's the same argument IT made about iPhones, and it was wrong then too. Employees use unsanctioned AI for the same reason they used unsanctioned phones: the sanctioned option doesn't solve their actual problem. A copilot that can summarize a Teams meeting or draft a generic email is fine for administrative tasks. But the operations analyst trying to reconcile three carrier contracts with seasonal volume commitments, or the finance team trying to model the impact of tariff changes across a seventeen-country supply chain, those problems need something purpose-built. When the official tool can't do the job, people find one that can. We're hearing this directly from the technical leaders we work with. A CTO at a mid-market logistics company told us his team evaluated Copilot for six months. The verdict: useful for drafting emails, useless for anything involving their actual operational data. His supply chain analysts needed to model carrier rate optimization across contracts with conditional volume commitments: the kind of problem where the constraints are buried in legal documents and the business rules live in the heads of people who've been managing those relationships for fifteen years. Copilot doesn't know those constraints exist. It can't access the data. And even if it could, a general-purpose model isn't designed to reason about that kind of domain-specific complexity. We wrote about this in [our first series.](/blog/the-build-vs-buy-decision) The build vs. buy decision flipped when the economics of custom development changed. 76% of enterprises were defaulting to vendor solutions because building was too slow and too expensive. That math reversed. The same logic applies to AI infrastructure itself. Generic copilots solve generic problems. They're the 80% solution, good enough for the tasks that don't differentiate your business. But the 20% that matters, the operational complexity that's specific to how your company actually works, gets ignored. That's the 20% your employees are trying to solve with ChatGPT. ## The Real Cost of the Wrong Response Most enterprises respond to shadow AI the way IT responded to the iPhone: with policy. Block the consumer tools, write an acceptable use policy, threaten consequences. We're seeing this play out with our clients right now. CISOs are discovering unsanctioned AI, writing reports, and recommending access controls. Some organizations are blocking ChatGPT at the firewall. Others are mandating that all AI usage go through the enterprise copilot. These responses share the same flaw as every IT lockdown policy from the BYOD era: they treat the symptom rather than the cause. If you block ChatGPT and your enterprise copilot still can't solve the analyst's carrier contract problem, that analyst will find another way. They always do. The history of enterprise technology is a long series of IT departments discovering, after the fact, that employees already found a workaround. The organizations that actually resolved the BYOD problem didn't do it by blocking devices forever. Apple resolved it for them, by building enterprise-grade security and tooling into a device people actually wanted to use, and relying on happy customers to force IT's hand. Apple didn't ask IT to lower the bar. Apple met it. That's the same answer here, except the requirements are more demanding. A phone stores files. An AI system reasons about your data, generates outputs based on it, and, increasingly, takes actions autonomously. The governance architecture needs to match that reality. ## What the Right Answer Looks Like The organizations we're working with that are getting ahead of this aren't choosing between "lock everything down" and "let people use whatever they want." They're building AI infrastructure that's actually worth using (infrastructure that solves the real operational problems, the ones the generic copilot can't touch) with governance designed into the architecture from day one. This means AI infrastructure that understands your specific environment: your data residency requirements, your compliance framework, your permission boundaries. Infrastructure where the code runs in sandboxed environments under your rules, where secrets management keeps credentials inside your perimeter, where every interaction is logged and auditable because that's how the system was built, not because someone remembered to turn on a setting. We're building this kind of infrastructure for our clients right now. The approach starts with understanding what problems your people are actually trying to solve, the problems that drove them to unsanctioned tools in the first place, and then building AI infrastructure that handles those specific problems with real governance baked in. When the sanctioned system is genuinely better than the unsanctioned alternative *and* it's secure by design, the shadow AI problem solves itself. Employees don't sneak tools into the workplace because they enjoy the risk. They do it because they need to get work done. This is the lesson that Apple taught enterprise IT. **You don't win by being more locked down than the alternative. You win by building what enterprise IT demands into something people actually want to use** (and letting your best sales force, happy customers, do the rest. The same principle applies here: governance that's built into the architecture of purpose-built infrastructure doesn't restrict your people) it enables them to solve real problems without creating the exposure that generic, unsanctioned alternatives bring. Purpose-built beats generic for the same reason it always has. The 80/20 problem we described in [our first article](/blog/the-build-vs-buy-decision), vendors solve 80% while you build workarounds for the critical 20%, applies to AI infrastructure too. Your employees don't need a better copilot for summarizing meetings. They need infrastructure that can handle the specific, messy, context-dependent problems that make your business run. And they need it built with the same rigor you'd apply to any production system that touches sensitive data. The iPhone won because Apple built what IT demanded into something users loved, and let happy customers sell it up the chain. The same thing will happen with enterprise AI. The question for CTOs right now is whether you'll build that infrastructure intentionally, purpose-built for your operations, governed from the ground up, actually capable of solving the problems your people face every day, or wait until the shadow AI problem builds it for you, with none of the governance and all of the risk. Your employees have already made their choice. The question is what you do about it. [*See how TechFabric builds purpose-built AI infrastructure*](/how-we-do-it)or [s*chedule a conversation*](/contact)*with an engineer who deploys this way.* ‍ --- ## The Forward-Deployed Playbook URL: https://www.techfabric.com/blog/the-forward-deployed-playbook Date: 2026-03-04 Author: TechFabric *A TechFabric Field Notes Deep Dive, Part 3 of 3* ## The Piece That Makes It Work In [**Part 1 of this blog series**](/blog/the-build-vs-buy-decision)**,** we laid out how AI assisted planning flipped the 'build vs. buy' decision. Custom development that took six months now scopes at four weeks. The economics changed, and the 76% of enterprises still defaulting to vendor solutions are operating on outdated math. In [Part 2](/blog/what-if-agile-was-the-detour), we went further. The same economics are making detailed upfront planning viable again. When implementation takes weeks instead of months, investing in getting the architecture right on the first pass, it's the obvious play. Senior engineers are designing production-grade data models and shipping them in the time it used to take to deliver an MVP. But both of those shifts depend on an assumption that's easy to gloss over: **the people doing the planning actually understand the problem they're solving.** Not the version of the problem that made it into the requirements document. The real one: the one that lives in your operations, your data, and the heads of the people who've been working around system limitations for years. This is where the model either works or falls apart. And it's why we deploy the way we do. ## Why 80% of Enterprise AI Fails at the Integration Wall We keep coming back to this number:**64% of organizations have moved fewer than 30% of their AI experiments into production.**Execution is where initiatives stall. We call it the "integration wall." Getting an AI demo working in a sandbox is maybe 20% of the job. The other 80% is navigating enterprise SSO, legacy ETL pipelines, data residency requirements, the politics of getting production credentials from your security team, and the dozens of undocumented business rules that nobody mentions because they've become invisible through habit. We've watched traditional consulting teams hit this wall repeatedly. They're smart people working from the outside, reading your documentation, attending your discovery sessions, building against a requirements document that captures maybe 40% of the actual problem. The remaining 60% lives in the operational context that nobody writes down. This is why we're seeing 15-person teams billing $300K per month spend six months and deliver a system that technically works but never gets fully adopted. They built what was specified, not what was actually needed. ## What Forward-Deployed Actually Means Palantir popularized this model, and their results speak for themselves, **137% revenue growth in U.S. commercial operations, driven by embedding engineers directly in client environments.**But the concept is spreading fast. Salesforce is adopting it for Agentforce deployments, ServiceNow is investing in it, Anthropic is scaling its FDE team fivefold, and job postings for forward-deployed engineers are up 800% year-over-year. The principle is straightforward: instead of engineers working from your documentation at arm's length, they embed in your operations and work from firsthand understanding. **What this looks like in practice at TechFabric:** A senior engineer joins your team not as staff augmentation filling a seat at a desk, but as someone operating inside your systems, your data, and your daily workflows. They attend your operations standup. They observe how your team handles exceptions. They surface constraints that never made it into documentation because your team stopped recognizing them as constraints years ago. They're simply "how things work." Two weeks in, that engineer understands your operational reality better than the last consulting team understood it after three months of discovery sessions. Not because they're smarter, because they're closer. The gap between documentation and reality only closes through proximity. ## Context Is the Multiplier In Part 2, we described the shift toward investing in upfront specification rather than iterating through multiple refactors. That shift only works if the specifications are grounded in operational truth. A beautifully detailed spec written by someone who doesn't understand your business produces the same failure mode as 1990s Waterfall: an expensive system that misses the actual problem. We see this play out on every engagement. **A carrier selection project we recently delivered:** A spec based on the requirements document would say: evaluate carriers by cost, transit time, and reliability score. Clean problem. Any team could build it. An engineer embedded in operations for two weeks discovered the real system: three carriers with negotiated volume commitments where missing minimums triggers rate increases across the board next quarter; two lanes with unwritten preferences based on receiving dock relationships; reliability scores eight months out of date. The spec described 40% of the actual optimization problem. That embedded engineer doesn't just build a better system. *They write a better specification.*And when that specification feeds into AI infrastructure that can execute it in weeks instead of months, you get the ideal system, the one that accounts for the real constraints, built in the time and budget that used to buy you a compromised MVP. ## The Team Structure We detailed the economics in our****[**first article**](/blog/the-build-vs-buy-decision): a traditional 12-15 person consulting team bills $250-400K per month. The productive engineering output comes from maybe 3-4 people. The rest is coordination infrastructure, management overhead, and organizational scaffolding the vendor needs to run their own engagement. Our model strips that scaffolding: **Three senior engineers.** Each one averages fifteen years of enterprise experience. Each one capable of architecting the entire system alone. Each one embedded deeply enough in your operations to understand the problem at the level that matters. **Purpose-built AI infrastructure.** Not "we use Copilot." Infrastructure trained on how our engineers actually work, handling the implementation throughput that used to require junior developers. Each engineer directs that infrastructure to produce what used to require 4-5 additional people. **Zero coordination tax.** The architect and the builder are the same person. No project managers translating requirements between engineers and clients. No sub-teams that need synchronization meetings. No handoffs where context gets lost. The person who discovered the constraint in your operations at 7 AM is the same person encoding it into the system at 9 AM. **The output:** production-grade systems shipped in weeks, at a fraction of the cost of a traditional engagement, with fewer defects because every decision is made by someone who holds the full context. ## How an Engagement Actually Works **Weeks 1-2: Embedded Discovery** Our engineers join your environment. They get access to your systems, your data, and most importantly, your people. They sit with your operations team, your data engineers, and your business analysts. They map the real constraints, the actual workflows, and the business logic that lives in people's heads rather than in documentation. This isn't the kind of "discovery" that produces a PowerPoint deck. It produces a complete system specification grounded in operational reality, not documentation, as described in Part 2. **Weeks 3-6: Build** With a specification grounded in real context, our engineers build. Senior judgment directs AI infrastructure at implementation speed. The data model is designed for the long term, not a "good enough for now" MVP schema that requires seven migrations over eighteen months. The integration architecture reflects your actual system constraints, not the idealized version in the API documentation. Every line of code is reviewed by someone who understands the full system and the full business context. Every architectural decision is made by someone who's seen what happens when you cut that corner at scale. **Weeks 6-8: Production and Handoff** The system goes live in your environment, running against your real data, handling your actual operational load. You get clean documentation and full knowledge transfer, and the engineers who built it are available for support because they're the same people from day one, no handoff to a maintenance team that's never seen the codebase. ## The Trust Architecture Forward-deployed doesn't mean unsupervised. A common concern: *"You're embedding engineers in our operations. How do we maintain control?"* These engineers report to you. They work on your priorities. You have weekly visibility into what's shipping, why decisions were made, and what's coming next. They're embedded enough to understand context but accountable enough to deliver outcomes on your terms. We've found that trust is built through demonstrated competence, not contractual terms. When the engineer embedded in your operations identifies a constraint three previous consulting teams missed and builds a system that accounts for it, the question shifts from *"Can I trust them?"* to*"Why weren't we doing this before?"* ## When This Works, And When It Doesn't We've been direct about this throughout the series: the forward-deployed model isn't right for everything. **It works when:** The problem is complex, context-dependent, and requires deep judgment, intelligent automation that needs to encode real business logic, legacy modernization with undocumented constraints, or integration projects where the real requirements aren't written down anywhere. These are the situations where proximity to operations is the difference between shipping something that works and shipping something that technically passes testing. **It doesn't work when:** The problem is well-defined with clear requirements and no operational ambiguity: a standard CRUD application, a straightforward data migration with complete documentation, or a project where the spec is genuinely the spec. For those, we've found that a well-managed traditional team works fine. The honest signal: if your last team delivered exactly what was specified and your operations team started routing around it within a month, you have a context problem that more engineers won't solve. You need fewer, better engineers who are closer to the work. ## **The Enterprise AI Shift: A Three-Part Series** The three shifts we've described in this series are interconnected: [**The build vs. buy calculus flipped**](/blog/the-build-vs-buy-decision)**.** AI infrastructure made custom development faster and cheaper than vendor workarounds. The 80/20 problem, vendors solving 80% while you build workarounds for the critical 20%, now resolves in favor of building. [**The planning-execution tradeoff inverted**](/blog/what-if-agile-was-the-detour)**.** When implementation takes weeks instead of months, investing in getting the architecture right upfront isn't a gamble. Senior engineers are designing production-grade systems and shipping them in the time that used to produce compromised MVPs. **The delivery model that makes both possible is forward-deployed.** All the speed and cost advantages of AI infrastructure are wasted if the team building the system doesn't understand the real problem. Embedded context (engineers who operate inside your operations, not outside them) is what turns faster execution into better outcomes. The consulting industry is built on headcount economics: more people equals more revenue. AI infrastructure is dismantling that equation. A model that sends fifteen people to build what three could build better is now selling organizational scaffolding. We're watching the future take shape: small teams of senior engineers embedded where the work happens, equipped with AI infrastructure that operates at implementation speeds that redefine what's possible. Small, senior, and close to the problem is now faster, cheaper, and more accurate than the alternative. Your next major initiative doesn't need a bigger team. It needs the right team, in the right place, with the right infrastructure.[**‍**](/contact) [**Schedule a conversation with an engineer who works this way**](/contact)**.** ‍ --- ## What If Agile Was the Detour? URL: https://www.techfabric.com/blog/what-if-agile-was-the-detour Date: 2026-02-20 Author: TechFabric *A TechFabric Field Notes Deep Dive, Part 2 of 3* ## The Assumption Nobody Questions We've all accepted the same origin story: Agile exists because Waterfall failed. And that's mostly right. Requirements gathered in January were obsolete by June, budgets ballooned, and teams delivered systems that technically matched the spec but missed the actual business need by a mile. Agile addressed this by making iteration the default, ship something small, learn from it, adjust, and accept that the first version will be wrong. For twenty years, this has been gospel. But that rests on an assumption that nobody revisits: **the reason Waterfall failed was structural, not circumstantial.**The prevailing belief is that upfront planning is inherently flawed because requirements always change, that iteration isn't just better, it's the only viable approach. What if that assumption was wrong? What if Waterfall's real failure wasn't the philosophy of planning upfront. It was that the cost of executing a detailed plan was so high that any mistake in the plan was catastrophic? ## What Actually Went Wrong With Waterfall We've all seen the pattern that killed Waterfall projects. A team would spend three months gathering requirements, another two months on architecture, and then six to twelve months building it with twenty engineers who'd never touched the client's systems. By month eight, someone would discover that the data model didn't account for a constraint that operations had been working around for years, and reworking it meant reworking everything downstream. The failure lay in the planning's execution cost. When implementation takes twelve months and costs millions, an architectural mistake discovered in month eight is fatal. The budget to fix it doesn't exist. The timeline to recover doesn't exist. So teams shipped the flawed design and built workarounds on top of workarounds. Agile's real innovation was risk management. By shipping in two-week increments, the cost of being wrong dropped dramatically. You didn't need to get the architecture right on day one because refactoring every few sprints was cheaper than getting it wrong once at scale. **But refactoring was never free.** Every CTO we work with knows this. The "acceptable" cost of iterating from MVP to production is actually enormous, measured in months of rework, schema migrations, integration rewrites, and the organizational friction of telling the business that the thing you shipped last quarter needs to be rebuilt before it can handle the next use case. Agile didn't eliminate the cost of architectural mistakes. It amortized them. And for twenty years, that amortization was the best deal available. ## The Deal Just Changed We wrote in[**our last article**](/blog/the-build-vs-buy-decision) about Claude Opus 4.6 releasing with a 1M token context window and GPT-5.3-Codex dropping with 25% speed improvements. We focused on how those capabilities flipped the build vs. buy decision. But the deeper shift is in what these capabilities do to the planning-execution tradeoff. When a senior engineer can load an entire codebase, legacy system documentation, and a complete set of business rules into a single session, and when purpose-built AI infrastructure handles implementation throughput at 4-5x the speed of a traditional team, the economics of upfront planning invert. **The math matters:** If implementation takes twelve months, spending three months on planning feels risky because requirements might change before you're done building. But if implementation takes four weeks, spending two weeks on planning is the obvious play. You're not guessing what the business will need a year from now. You're describing what it needs right now, in full detail, and shipping it before the next board meeting. The constraint that made Agile necessary, the prohibitive cost of detailed upfront execution, is collapsing. ## The Data Model Problem Every enterprise system starts with a data model. In Agile's iterative world, that model evolves sprint by sprint. You build the MVP schema, "good enough for now." Then you refactor it for the next feature. Then again. Then again. A logistics client we're working with described their schema evolution: seven major migrations across eighteen months, each one requiring downstream changes to APIs, reports, and integrations. The Agile defense is that you couldn't have known the right data model upfront. And five years ago, that was probably true. Discovery happens through building. But our senior engineers, the ones with fifteen years of enterprise experience, could have designed 80% of the right data model from day one. They've built systems like this before. They know where schemas break at scale, which relationships become bottlenecks, and what compliance requirements will surface in month six. What held them back wasn't knowledge. It was time. Designing the ideal schema and building it was a six-month project. The business needed something in six weeks. **The tradeoff doesn't exist anymore.** A senior engineer describing the long-term data model in full detail, with the right AI infrastructure handling implementation, ships the production-grade schema in the same window that used to produce an MVP. The seven migrations and eighteen months of rework never happen. ## The Industry Is Moving Here A methodology called Spec-Driven Development is formalizing what we've been doing intuitively, investing heavily in upfront specification, then using AI infrastructure to execute against that spec at speed. Amazon built an experimental coding environment called Kiro that forces developers to choose between two modes: exploratory "vibe coding" and a specification-driven mode. Their finding: **developers weren't giving AI enough detail to get high-quality results.**The tool itself acts like a project manager, guiding teams to plan more before coding. Teams adopting spec-driven approaches are reporting 50-80% reductions in implementation time for well-specified features. Engineering leaders are spending three times more effort on upfront design than they did two years ago, not because they're reverting to Waterfall, but because the return on planning has fundamentally changed when AI infrastructure can execute a detailed spec in days instead of months. As one AI engineer put it, the agents we're working with today need what Waterfall provided even more than people did. **AI is powerful at following exact instructions and terrible at reading minds**. Exhaustive upfront specifications aren't a bureaucratic relic but the ideal input format for the infrastructure responsible for building. ## What This Actually Looks Like Here's a recent engagement. A manufacturing client needed an inventory optimization system integrating with their ERP across twelve factories and 50,000 SKUs. Under the old model, iterative Agile sprints with a large team, this was a nine-to-twelve month initiative with a roadmap full of "we'll figure it out when we get there." Our approach: two senior engineers spent two weeks embedded in the client's operations, mapping the real constraints, supplier minimum order quantities that vary by season, contractual inventory floors, production line changeover costs, the actual business logic that operations had been carrying in their heads for years. They described the ideal long-term data model, integration architecture, and optimization logic in full detail. Then they built it in six weeks, production-grade. The system they shipped wasn't an MVP that would need three rounds of refactoring. It was the system they would have built from day one if traditional development economics hadn't forced the compromise. This is the pattern we're seeing across engagements. When implementation cost drops by 80%, the rational response isn't to iterate faster. It's to plan better and build right the first time. ## The Forward-Deployed Advantage There's a nuance to be understood. Upfront planning only works when the people doing the planning understand the real problem. Spec-driven development in the hands of a team working from a sanitized requirements document produces the same failure mode as 1990s Waterfall: a beautifully specified system that doesn't match operational reality. This is why the forward-deployed model has it's place. Our engineers don't write specs from a conference room. They embed in your operations, understand your actual constraints, and then describe the right system with the confidence that comes from having seen the data, met the people, and watched the workarounds happen at 7 AM. The combination of senior engineers with deep embedded context, armed with AI infrastructure that executes detailed specifications at speed is what makes this work. It's what Waterfall was trying to be before the economics made it impossible. In Part 3 of this series, we'll go deep on exactly how forward-deployed teams operate, what embedded context actually means in practice, and how this model is reshaping what enterprises can expect from engineering partners. ## The Planning Premium Agile isn't dead. We still see projects where iterative discovery is the right approach, genuinely novel products where nobody knows what "right" looks like, or R&D efforts where the point is exploration. But for the enterprise systems our partners are bringing to us (inventory optimization, carrier selection, pricing engines, workflow automation) the problem space is well-understood by senior engineers who've built systems like these before. The architecture decisions are knowable. The data models are designable. The constraints are discoverable if you put the right people in the right place. For twenty years, the industry treated iteration as a virtue. In reality, it was a workaround for a cost problem. AI infrastructure is solving the cost problem. The teams that recognize this are shipping production-grade systems in weeks, with data models and architectures that won't need reworking in six months. The question isn't "Agile or Waterfall?" It never was. The real question is: given what your engineers can now execute in four weeks, is your planning keeping up? [**Schedule a conversation**](/contact) to see how TechFabric's forward-deployed teams plan and deliver, and what this approach could mean for your stuck initiative. ‍ --- ## Agentic Systems Without the Chaos: Building AI That Stays on the Rails URL: https://www.techfabric.com/blog/agentic-systems-without-the-chaos-building-ai-that-stays-on-the-rails Date: 2026-02-16 Author: TechFabric ## ‍**The Autonomous AI Paradox** Your board wants autonomous AI. Your CTO wants predictability. These seem like opposing forces, but they're not. The problem isn't that agentic AI can't be controlled. It's that most implementations skip the engineering rigor required to make it trustworthy. Agentic AI systems don't just respond to prompts. They act independently: making decisions, calling APIs, triggering workflows, and taking business actions without waiting for human approval on every step. An agent that monitors inventory and automatically reorders stock. A system that analyzes support tickets and routes them to the right team. An AI that watches your supply chain and adjusts schedules based on vendor delays. The demos are impressive, but**most CTOs have the same nightmare**: an autonomous system making expensive mistakes at 2 AM, and nobody noticing until the damage is done. The AI vendor demos don't show what happens when the agent misinterprets an edge case, exceeds budget limits, or takes actions that violate business rules nobody thought to encode. They show capability without addressing control - without addressing real risk. You need both: the power of autonomous action and the safety of predictable behavior. After building dozens of agentic systems for enterprise production environments, we've learned that the difference between chaos and control comes down to three engineering layers: **guardrails**, **observability**, and **circuit breakers**. Here's how we build agentic systems that stay on the rails. ‍ ## **The Three-Layer Control Framework** Building trustworthy agentic systems requires three distinct layers of control. Each serves a different purpose, and all three work together to create systems that are both powerful and safe. ### **Layer 1: Guardrails (Define What's Allowed)** Guardrails establish boundaries before the agent takes any action. This is about defining the field of play with precision, not limiting capability.. **Permission Systems** The agent needs explicit permissions for every resource it touches. We implement this through role-based access control (RBAC) at the API layer: ``` DEFINE AgentPermissions: agent_id: unique identifier role: agent role type allowed_operations: map of operations by role FOR role "logistics_agent": READ access: shipments, routes, carriers, tracking WRITE access: recommendations_staging only FORBIDDEN: shipments.production, routes.production FUNCTION can_execute(operation, resource): IF resource is in FORBIDDEN list: RETURN false IF operation is allowed for this role AND resource is accessible: RETURN true RETURN false ``` In a recent logistics project, we built an agentic system that queries shipment data across all tables and recommends routing optimizations. The guardrails: **read access to any table, write access only to a "recommendations" staging area**. Zero direct modifications to production shipment records. Every recommendation required explicit human approval before execution. The agent can be extremely helpful (analyzing thousands of shipments, identifying optimization opportunities, generating detailed recommendations) without being dangerous. It can't accidentally route a shipment to the wrong destination or modify delivery commitments. **Budget and Rate Limiting** Agentic systems can rack up API costs quickly if left unchecked. We implement multiple constraint layers: ``` DEFINE AgentBudgetController: daily_limit: maximum spend in USD rate_limit: max calls per minute current_spend: running total current_minute_calls: call counter FUNCTION check_before_action(estimated_cost, action_type): // Check daily budget IF (current_spend + estimated_cost) > daily_limit: THROW BudgetExceededException STOP execution // Check rate limit IF current_minute_calls >= rate_limit: THROW RateLimitException WAIT until next minute // Log and allow current_spend += estimated_cost current_minute_calls += 1 RETURN allowed ``` ‍ **Business Rule Encoding** The "always" and "never" rules get encoded as hard constraints that the agent cannot override: ``` DEFINE BusinessRuleValidator: rules = { "never_discount_below_cost": price must be >= cost_basis, "always_require_approval_above": value threshold.error_rate: CALL trip_breaker("high_error_rate", metrics) RETURN breaker_tripped // Check cost anomaly cost_ratio = metrics.current_cost / metrics.baseline_cost IF cost_ratio > threshold.cost_spike: CALL trip_breaker("cost_spike_detected", metrics) RETURN breaker_tripped // Check action velocity velocity_ratio = metrics.actions_per_hour / metrics.baseline_velocity IF velocity_ratio > threshold.action_velocity: CALL trip_breaker("unusual_velocity", metrics) RETURN breaker_tripped RETURN normal_operation FUNCTION trip_breaker(reason, context): // Immediately pause agent PAUSE agent execution // Alert operations team SEND alert WITH: severity: HIGH reason: specific trigger context: relevant metrics actions_required: [review_state, approve_resume] // Log circuit breaker activation WRITE to incident log ``` In a supply chain system, the agent monitors vendor lead times and automatically adjusts order schedules to prevent stockouts. The circuit breaker: if the agent detects lead time anomalies beyond three standard deviations, it immediately pauses and flags the data for human review. Better to wait six hours for a supply chain analyst to verify the data than to make ordering decisions based on corrupted vendor feeds or system glitches. **Manual Override Design** Circuit breakers aren't just automatic. Operations teams need instant manual control: ``` DEFINE AgentManualControls: FUNCTION emergency_stop(agent_id, operator_id, reason): // Immediate halt - no confirmation dialogs IMMEDIATELY pause agent // Rollback any in-flight actions if possible ATTEMPT to rollback pending actions // Log the intervention RECORD manual_override WITH: agent_id: which agent operator: who stopped it action: emergency_stop reason: operator's explanation timestamp: when it happened RETURN { status: "stopped" in_flight_actions: list of pending items rollback_status: success/partial/failed } ``` When something needs to stop, it stops. No *"Are you sure?*" dialogs and no delays. The system errs on the side of operator control. ‍ ## **What This Looks Like in Production** Here's how these three layers work together in a real Production System. **Scenario: E-Commerce Inventory Agent** The agent's job: monitor inventory levels across 50,000 SKUs and make pricing/promotion recommendations to optimize inventory turns while maintaining margin targets. **Morning: Normal Operations** The agent analyzes overnight sales data. It identifies 47 SKUs with inventory levels 30% above forecast. For each one: 1. **Guardrails check:** Agent confirms it has read access to sales data, inventory data, and competitor pricing feeds. Write access limited to recommendations table. 2. **Analysis:** Agent considers demand forecasts, seasonality, competitor pricing, margin requirements, historical promotion performance. 3. **Decision:** Recommends 10-15% price reductions on 23 SKUs, promotional bundle on 8 SKUs, no action on remaining 16. 4. **Observability:** Full decision context logged for each SKU. The merchandising team reviews recommendations through the dashboard. 5. **Circuit breaker check:** Decision patterns match historical norms. Confidence scores above threshold. No anomalies detected. 6. **Execution:** Recommendations staged for merchandising approval. **Afternoon: Anomaly Detected** A data feed error causes competitor pricing data to show zeros for a major competitor. 1. The agent processes the bad data and starts recommending aggressive price increases across 200+ SKUs (mistakenly thinking competitors raised prices). 2. **Circuit breaker trips:** Anomaly detection catches the unusual recommendation pattern, 200 price increases in 5 minutes, when baseline is 15-20 per hour. 3. **Immediate pause:** Agent automatically pauses. Alert sent to the operations team. 4. **Human review:** Data engineer identifies the feed error, corrects it, validates data quality. 5. **Controlled resume:** Agent resumes with corrected data. Previous recommendations flagged as "generated from bad data" and discarded. The circuit breaker prevented 200+ incorrect pricing recommendations from reaching the merchandising team. The observability logs made it easy to identify exactly what went wrong and which decisions needed to be discarded. ‍ ## **Why Senior Engineering Matters** Junior developers can build agentic systems that take actions. Senior engineers build agentic systems that take controlled, observable, intelligent actions. The difference matters. **The Experience Gap** Knowing where to set guardrails requires understanding what actually breaks in production. An inexperienced developer might implement basic rate limiting. A senior engineer knows to implement: - Per-action rate limits (different limits for read vs. write operations) - Burst allowances for legitimate spikes (monthly close, seasonal peaks) - Graceful degradation when limits are approached (warnings before hard stops) - Emergency reserves for critical actions (core business operations get priority) This knowledge comes from watching systems fail, understanding the failure modes, and building defenses against them and that takes real, on-the-job experience. **The Judgment Call** Circuit breaker thresholds aren't something you can ask an AI to determine. They require business context and technical judgment: - Too sensitive: constant false alarms, agent pauses during legitimate busy periods - Too lenient: anomalies slip through, bad decisions get executed - Just right: catches genuine problems while allowing normal operational variance Senior engineers calibrate these thresholds based on understanding both the business rhythms and the technical behavior patterns. **The Pattern Recognition** Experienced engineers recognize the patterns that indicate trouble: - An agent consistently hitting the same business rule constraint (suggests the rule needs revision or the agent needs better training) - Confidence scores trending downward over time (suggests data drift or model degradation) - Action patterns changing subtly but consistently (suggests the agent is learning something new, could be good or bad) This comes down to system judgment shaped by years of operating real software in production. ‍ ## **Getting Started: The Pragmatic Path** If you're building or buying agentic systems, here's the pragmatic path forward: **Start with Read-Only Agents** Your first agentic system should observe and recommend, not act. Build the observability infrastructure first. Get comfortable with how the agent makes decisions before giving it write access to anything that matters. **Build Circuit Breakers Before You Think You Need Them** Don't wait for a production incident to add emergency stops. Build them early, test them regularly, make sure they actually work. The best circuit breaker is the one that's been tested before the emergency. **Instrument Everything** You can always filter logs later. You can't retroactively log decisions that weren't captured. When debugging an agentic system, the question is never*"do we have enough logs?"* The question is *"do we have the right logs?"* **Treat Agentic Systems Like Any Other Production System** Code reviews, testing, staging environments, monitoring, incident response procedures, on-call rotations. If it's important enough to be autonomous, it's important enough for full production rigor. ‍ ## **Autonomous and Trustworthy** Agentic AI systems can be both powerful and safe. The board gets autonomous AI that delivers measurable business value. The CTO gets systems that can be trusted with real business processes. What separates reliable agentic systems from fragile ones is engineering discipline: guardrails for boundaries, observability for transparency, and circuit breakers to stop real damage. We've built dozens of agentic workflows that run in production for enterprise clients in logistics, e-commerce, supply chain, and manufacturing. They work because we treat them with the same engineering rigor as any other production system that touches real business processes. The pragmatic reality: autonomous AI doesn't have to mean uncontrolled AI. It means engineering systems that earn trust through reliability. **Want to see these principles in action?** [**Schedule a conversation**](/contact) with one of our engineers about your agentic AI challenges. --- ## The Build vs. Buy Decision for Enterprise AI (When Off-the-Shelf Fails You) URL: https://www.techfabric.com/blog/the-build-vs-buy-decision Date: 2026-02-12 Author: TechFabric ## **The Shift Happening Right Now** Claude Opus 4.6 released on February 5th with 1M token context. GPT-5.3-Codex dropped last week running 25% faster than 5.2. These aren't incremental improvements. **They're changing the build vs buy calculus faster than most CTOs realize.** Your CFO approved a six-figure annual contract for an AI platform six months ago. The vendor demo looked perfect. Now your engineers are writing custom code to handle edge cases. They're asking a new question:*"With Opus 4.6's context window and Codex's speed improvements, why are we paying for this platform?"* **This is the 80/20 problem.** AI vendors solve 80% of requirements. The missing 20% isn't random features. It's exactly where your business logic lives, where your competitive advantage matters, and where your operational reality differs from generic assumptions. The build vs buy decision for enterprise AI now has three dimensions, not two: capability, data sovereignty, and build economics. **Here's how to think through this decision with engineering rigor instead of vendor promises.** ## **What Changed This Month** #### **Context Windows That Actually Matter** Opus 4.6's 1M tokens means special-ops teams can load entire codebases, legacy system documentation, and business rule sets into a single session. **Projects that needed six months in 2024 are getting scoped at four weeks in 2026.** We're deploying teams for two Fortune 500 clients in the next ten days based on what this context window enables. #### **Speed Improvements That Compound** Codex's 25% speed improvement changes the math.Codex's 25% speed improvement isn't incremental. What took six weeks takes four weeks. What took four weeks takes three weeks. The "buy because custom is too expensive" argument is collapsing. Custom builds for business-specific needs are suddenly cost-effective. #### **The Data Sovereignty Problem** Simultaneously, broad AI tools like Copilot and Cowork are delivering real productivity gains. Teams are integrating them for general tasks. But they're hitting data boundaries. Proprietary pricing algorithms, competitive intelligence, pre-launch product data, CIOs are grappling with how to capture AI's benefits without exposing sensitive data to competitors using the same tools.CIOs are wrestling with how to get AI benefits without exposing what competitors using the same tools might see. This creates a three-dimensional decision that most enterprise AI frameworks aren't addressing yet. ## **When Off-the-Shelf Tools Actually Work** Before dismissing vendor solutions, understand when they genuinely deliver value. Off-the-shelf AI tools work when your requirements match standard patterns that most other companies share. **Document processing with common formats.** Invoice extraction, receipt processing, contract parsing. If your documents follow standard formats and your validation rules are straightforward, tools like Azure Form Recognizer or AWS Textract handle this reliably. You're not competing on invoice processing capability. **Standard chatbots and Q&A.** Customer support bots answering FAQ-style questions from documented knowledge bases. If your differentiation comes from response time rather than AI sophistication, configurable platforms like Intercom or Zendesk AI work fine. **Basic recommendation engines.** "Customers who bought X also bought Y" recommendations without complex business rules around margin, inventory, or strategic positioning. The vendor advantage: infrastructure management, speed to baseline value, and handling commodity capabilities so your team can focus where you actually compete. ## **When Off-the-Shelf Tools Fail (And Why It Matters)** The limitations surface the moment your requirements include "except when" or "but in our case." Here's where generic tools break down. #### **Legacy System Integration** Enterprise reality: systems running for 15 years. Your ERP was customized in 2009. Your warehouse management system has undocumented business logic in stored procedures. Your pricing engine integrates with six different data sources using proprietary APIs. Vendor solutions integrate with common platforms. They don't integrate with your specific implementations. **Building integration layers around vendor tools often costs more than building the AI capability itself.** #### **Domain-Specific Constraints** A logistics company evaluated route optimization tools. Every vendor demoed impressive algorithms. None understood their reality: time-dependent road restrictions changing by day of week, driver certifications limiting route assignments, individually-negotiated customer delivery windows, and vehicle capacity constraints varying by product type. The vendors could optimize routes. They couldn't optimize routes given the actual constraints the business operates under. That's not a 20% gap. That's the entire problem. #### **Complex Business Rules** Your business logic reflects years of learned patterns, regulatory requirements, negotiated contracts, and strategic decisions. A pricing system might have hundreds of rules: volume discounts for specific customers, promotional pricing with expiration logic, competitive matching for strategic accounts, margin floors varying by product category, seasonal adjustments based on inventory levels. Generic tools provide frameworks for configuration. That configuration work becomes a permanent development and maintenance burden. #### **Real Examples** **Manufacturing client:***"The inventory optimization tool looks great, but in our case we have minimum order quantities from suppliers that vary by season, contractual commitments creating inventory floors, and production line changeover costs making small batches uneconomical."* **E-commerce client*:****"The recommendation engine works well, but in our case we need to balance gross margin, inventory age, strategic brand positioning, and vendor co-op marketing commitments."* Every *"but in our case"* represents a gap between generic capability and business-specific requirements.**When these gaps are central to business operations, the vendor tool becomes expensive infrastructure that doesn't solve your actual problem.** ## **The Data Sovereignty Dimension** Beyond capability gaps, February 2026 brings a consideration that didn't exist when most AI build vs buy frameworks were written: data boundaries. #### **When Broad AI Tools See Your Data** Microsoft Copilot, Claude Cowork, ChatGPT Enterprise deliver immediate value. Teams are analyzing data, generating reports, writing code, and automating workflows using AI assistants that understand natural language. **The tradeoff:** these systems process your data through their models. For general productivity tasks, that's acceptable. For some use cases, it's problematic. #### **When Data Sovereignty Matters** You need to keep data inside your boundaries when working with: - Proprietary business logic representing competitive advantage (pricing algorithms, optimization parameters, strategic decision criteria) - Competitive intelligence that you don't want feeding back into models your competitors might use - Regulated data with compliance requirements (healthcare, financial services, government contracts) - Pre-public information that can't be exposed to external systems (M&A plans, product launches, strategic initiatives) #### **The Architecture Question** Most enterprises don't need custom-trained models. You can build effective AI systems using commercial models (GPT-4, Claude, Llama) with your data through RAG architectures, fine-tuning, or prompt engineering. The architecture matters more than model ownership: ``` DEFINE DataSovereignArchitecture: // Commercial models run in YOUR infrastructure model_deployment: { location: your_private_cloud or on_premise data_flow: never_leaves_your_boundary model: commercial_llm_licensed_for_private_deployment } // Your proprietary data stays internal context_data: { stored_in: your_databases accessed_by: ai_system_in_your_infrastructure never_sent_to: external_apis } // Control plane separates general vs. sensitive routing_logic: { general_tasks: can_use_external_apis sensitive_tasks: routed_to_internal_systems } ``` You can use Claude or GPT-4 for general tasks while routing sensitive operations through models deployed in your infrastructure. ## **The Real Cost Comparison** The sticker price comparison misleads. A $50K/month SaaS platform looks cheaper than $300K in custom development. Until you account for the full cost. #### **Vendor Tool Total Cost** Annual platform fee plus implementation services plus ongoing configuration changes plus custom integration development plus workaround systems for unsupported requirements plus the opportunity cost of operating with suboptimal AI. **Client example**: Manufacturing company committed to $600K annual contract for inventory optimization. Added $200K in integration development. Discovered the tool didn't handle their constraint-based optimization needs. Built a parallelBuilt parallel custom system for $400K. Now paying for both. Total three-year cost: $2.2M. Still doesn't have optimal inventory decisions. #### **Custom Development Total Cost** Initial development plus ongoing maintenance plus infrastructure costs. With Opus 4.6's context window and Codex's 25% speed improvement, these numbers are changing. Same manufacturing client, alternative path evaluated this week: Custom development scoped at $380K initial build (down from $450K six months ago), $15K/month maintenance, owned infrastructure at $5K/month. Three-year total: $1.1M. Delivers AI that actually optimizes for their specific constraints. The build economics shifted dramatically. What seemed too expensive six months ago is now the cost-effective path. ## **The Decision Framework** #### **Four Paths Taking Shape** The decision now maps to four distinct paths based on capability specificity and data sensitivity: **Path 1: Generic Tasks, Non-Sensitive Data** Teams are using broad AI tools (Copilot, Cowork, ChatGPT Enterprise). Document processing, data analysis, general coding assistance. Fast deployment, immediate value. **Path 2: Generic Tasks, Sensitive Data** Companies are deploying commercial models in private clouds. Same capabilities as broad tools, but data stays inside boundaries. Azure OpenAI in your VPC, Claude in your infrastructure. **Path 3: Business-Specific Needs, Non-Sensitive Data** Custom builds are suddenly cost-effective. With current AI coding tools, what took six months takes four weeks. Special-ops teams (2-4 engineers, 4-6 weeks) delivering purpose-built AI for department-level needs. **Path 4: Business-Specific Needs, Sensitive Data** This is where competitive advantage lives. Custom systems with full data sovereignty. Proprietary business logic that can't be exposed to external models. We're deploying teams for this right now, inventory optimization for manufacturing, pricing engines for e-commerce, supply chain intelligence. #### **The Hybrid Approach** The smart path often combines all four. Use broad AI tools for general productivity. Deploy commercial models privately for sensitive general tasks. Build custom for business-specific capabilities. ``` DEFINE HybridAIArchitecture: // Generic, non-sensitive - use broad AI tools general_productivity: copilot_or_cowork // Generic, sensitive - deploy commercially document_analysis: azure_openai_in_private_cloud // Business-specific, non-sensitive - build custom workflow_automation: special_ops_team_build // Business-specific, sensitive - build custom with sovereignty pricing_optimization: custom_ai { runs_in: your_infrastructure encodes: proprietary_business_rules optimizes: actual_business_outcomes data: never_leaves_boundaries } ``` ## **Real Client Decisions** #### **Manufacturing: Built Custom** Client needed inventory optimization across 12 factories, 50,000 SKUs, complex supplier relationships. Evaluated three vendor platforms in Q4 2025. All provided generic optimization. None handled their constraint-based reality. **Decision:** Build custom system integrating with their ERP, encoding their specific business rules. **Outcome:** $4.2M reduction in excess inventory within first year. System paid for itself in six months. #### **E-Commerce: Hybrid Approach** Client needed product recommendations balancing conversion, margin, inventory age, and brand strategy. Used vendor tool (Algolia) for basic search. Built custom recommendation engine for personalized suggestions optimizing business outcomes, not just clicks. Outcome: 18% increase in average order value while reducing aged inventory by 30%. #### **Logistics: Bought and Configured** Client needed route optimization for standard delivery operations. Requirements were common. No unusual constraints. **Decision:** Bought Descartes routing platform, configured for their operations. **Outcome:** 12% reduction in delivery costs, implemented in 6 weeks. ## **The Question Changed** The build vs buy decision for enterprise AI in February 2026 isn't a single question. It's three: 1. **Where does your competitive advantage live?** If it's in generic capabilities, use existing tools. If it's in business-specific AI understanding your unique context, build custom. 2. **Does your data require sovereignty?** If you're processing sensitive, proprietary, or regulated information, you need systems keeping data inside your boundaries. 3. **What can you actually build now?** With Opus 4.6's context window and Codex's speed improvements, custom solutions that took six months last year take four weeks this month. 76% of enterprises are still buying vendor solutions. That number is about to shift. The calculus changed: data sovereignty matters now, and build economics improved dramatically. The four-path evaluation reveals different answers than the old binary choice. **What matters:** making the decision with engineering rigor, not vendor promises or outdated assumptions about what custom development costs. ‍**Need help mapping your requirements?** [**Schedule an AI discovery conversation.**](/contact) --- ## How to Unlock a New Market Without Rebuilding Your Core Platform URL: https://www.techfabric.com/blog/unlock-a-new-market-without-rebuilding-your-core-platform Date: 2026-02-06 Author: TechFabric Mature platforms don't stop growing because they can't scale. They stop growing because saying "YES" gets expensive. At maturity, the technical risk has been mitigated. Product-Market fit questions are in the rear-view mirror. The system works, and enterprise customers are steady. What slows growth is the cost of onboarding, supporting, and servicing smaller customers without disrupting the business that already pays the bills. Enterprise systems are built around long sales cycles, careful onboarding, and high-touch delivery. That posture protects revenue. It also makes smaller deals uneconomical by default. That's the tension a **global risk intelligence provider** brought to TechFabric. They had a payment validation engine trusted by major financial institutions. Bank-grade. Proven in production. Destabilizing that engine to pursue a new segment wasn't an option. The constraint was access. The quintessential Innovator's Dilemma. ### **Where Cost Actually Shows Up** Enterprise onboarding assumes engineers on the other side, procurement cycles, and time. API keys, manual provisioning, and sales-led activation fit that world. For smaller customers, the same process demands too much effort for too little return. Not because any one step is wrong, but because the cumulative cost adds up. That's where leadership decisions matter. Not because leaders design onboarding flows, but because they decide which assumptions get challenged and which persist by default. ### **Questions Worth Asking Before You Touch the Core** Before changing the product, pressure-test where cost is being created. A few questions tend to surface it quickly: - How many human steps sit between a new customer and their first successful transaction? - Which onboarding steps exist to protect large deals, and which are ones that smaller customers never needed? - Where does engineering get pulled in just to move a customer forward? - If onboarding volume doubled, what breaks first? - Which steps would you cut first if the deal were ten times smaller? ### **Changing the Ingress Without Touching the Core** For one client, answering those questions clarified the issue. The platform stayed intact. The pathway in needed to change. A self-serve entry point was built in front of the existing system. The enterprise engine stayed exactly as it was. All new work happened around it. Pricing was visible. Accounts could be created without assistance. Validation happened immediately. No calls, no walkthroughs, no long threads just to reach first value. That first validation marked the real start of the relationship. Everything before it was onboarding designed for larger buyers. Making that distinction required leadership willing to question inherited models, and partners with enough distance and experience to surface where cost was actually being created. ### **Self-Serve Without Creating a Support Tax** Self-serve doesn't mean unsupported. It means support's got the right tools. Internal tooling allowed support teams to review usage, billing history, and validation activity without touching enterprise systems or pulling engineering into routine questions. That separation kept effort proportional to deal size and protected the core platform from workflows it was never designed to absorb. **The Question Behind the Question** Patterns like this are hard to see from inside a single system. They become obvious when you've watched the same constraints surface across many platforms, across many industries, over many years. But the deeper question isn't technical. It's strategic. If your product is already winning up-market, and you see an opportunity down-market, the instinct is often to build something new. A lighter version, a different SKU, a separate team. Sometimes that's right. More often, it's expensive insurance against a problem that doesn't require a new product, just a new pathway to the one you already have. **A Few Questions Worth Sitting With** - Are your teams exploring expansion up or down market? Have you considered that onboarding, not the core product, might be the actual constraint? - What would it mean for your business if customers could reach first value in minutes instead of weeks? - How much of your current sales and support cost exists to service the *process* of becoming a customer rather than the *experience* of being one? - If a competitor made your product self-serve tomorrow, which customers would you lose first? These aren't hypotheticals. They're the questions that surfaced the opportunity for the client in this piece, and they've surfaced similar opportunities for others. **If This Sounds Familiar** TechFabric works with mature platforms facing exactly this kind of inflection point. Not to rebuild what's working, but to open new pathways around it. If you're weighing a down-market move, or watching a segment you can't economically serve, it might be worth a conversation. No pitch. No pressure. Just a honest look at whether the constraint is where you think it is. **Reach out directly** or [**schedule a 30-minute call**](/contact)to talk through what you're seeing. ‍ --- ## What Teams Get Wrong About Outages and Operational Risk URL: https://www.techfabric.com/blog/what-teams-get-wrong-about-outages-and-operational-risk Date: 2026-01-29 Author: TechFabric #### **Outages Don't Break Systems. Weak Assumptions Do.** Cloud outages are part of the operating environment now. That's not news. On November 18, 2025, a Cloudflare outage disrupted access to major platforms, including X and ChatGPT. In October 2025, AWS and Azure both experienced incidents that rippled into thousands of downstream services. When these platforms go down, your options are limited. You wait. You communicate. You recover when the provider recovers. That part is unavoidable. The real risk usually isn't upstream. It's internal. And it's almost always self-inflicted. Most teams spend their energy worrying about outages they can't control while ignoring the failure paths they own. External outages ***expose*** systems. Internal weaknesses ***take them down***. ### **Where Teams Actually Get Hurt** Most serious incidents don't start with a cloud provider. They start with unverified assumptions. - A backup exists, but no one has restored it under real conditions. - A recovery path works in a test environment but collapses at production scale. - Credentials haven't been rotated because nothing bad has happened yet. - Monitoring fires alerts but doesn't tell anyone what actually broke, or who owns fixing it. None of this feels urgent in isolation, but together, it turns a routine upstream outage into a prolonged business incident. We've seen this pattern repeatedly when initially engaging with enterprise clients. The primary database restore has never been tested at production scale. The backup exists. The restore path fails. What should be a short disruption stretches into hours or days of downtime while teams scramble to debug something they assumed worked. By the time the cloud provider has fully recovered, the internal outage is just getting started. ## **A Quick Reality Check for Leaders** If any of the questions below make you uncomfortable, you're not alone, but you're ask. - When was the last time your team restored a ***full production backup*** end to end? - Have you ever watched your system degrade under ***partial failure***, or only seen it fully up or fully down? - Do database writes consistently succeed or fail ***as a unit***, or can partial state leak through? - During an incident, is it obvious ***who is in charge***, what decisions they can make, and what success looks like? - If a major dependency failed tonight, would your system pause cleanly, or keep half-working and corrupting itself? Most teams can't confidently answer these. Not because they're careless, but because no one forced the system to prove it. ### **Hardening What You Actually Control** Reliable systems ***rehearse failure***. Teams that recover quickly do the unglamorous work early: - Restore backups instead of trusting that they exist - Validate recovery paths under real load - Rotate credentials on schedule, not after a scare - Reduce blast radius instead of assuming perfect behavior - Establish ownership before something breaks - Practice incident response while the stakes are low None of this prevents external outages. That isn't the goal. The goal is simple: ***When something outside your control fails, your system doesn't make it worse.*** ## **The Leadership Difference** Outages create uncertainty. What happens next depends on leadership. Strong leaders assume outages will happen. They're explicit about which risks matter, which don't, and how the organization responds when something breaks upstream. They communicate early and clearly. What's known, what isn't, and what happens next. That clarity keeps teams focused and prevents panic-driven decisions that cause more damage than the outage itself. The teams that hold up under pressure aren't the ones who tried to design failure out of the system. They're the ones who made sure failure **stopped where it started**. ## **What to Do If This Hit Close to Home** If this article made you uneasy, that's not a bad thing. It means you're asking the right question: ***"Would our system fail cleanly, or cascade?"*** The fastest way to answer that isn't another document or audit. It's a focused, senior-level review of your real failure paths: - What breaks first - What breaks next - What ***should*** stop but doesn't - And where assumptions are quietly doing the most damage That's the work we do with companies like yours when the cost of being wrong is high. --- ## DASF - Databricks AI Security Framework URL: https://www.techfabric.com/blog/dasf---databricks-ai-security-framework Date: 2025-08-22 Author: Preetham Reddy ![](/blog-media/fb363250-1.jpg) A policy document that describes how agents should behave will not stop a send. A control stops the action when the grant is missing, and leaves a record either way. Databricks publishes the Data and AI Security Framework, DASF, as a map of risks across the AI lifecycle, from the data and the models through serving and the platform underneath. It is a useful map. You do not install it. The work is deciding which of those risks you actually have, then putting a gate in the runtime. ## Where we put the gates **Data.** Unity Catalog decides who can see what. Agents and apps run under their own service principal, on the same path a person uses. If the catalogue coverage stops halfway, that is a [Health Check](/databricks/health-check) finding, and it will show up in an agent programme later as an incident. **Models and tools.** Unity AI Gateway is where model serving is governed. Tools an agent can call resolve through the catalogue, so it cannot reach a table its principal has no grant for. [Fabric Harness](/accelerators/fabric-harness) is how we deploy that agent as a Databricks App without rewriting it for each target. **Actions.** Every domain change goes through one mutation pipeline. [Fabric Platform](/accelerators/fabric-platform) makes an illegal transition structurally impossible. An agent actor passes the same policy and state-machine gates as a human one, and the event that explains the change is part of the same transaction. **Approvals.** Anything that would leave the workspace parks at a ticket a person answers. [Fabric Tower](/accelerators/fabric-tower) is the console. The supervisor cannot approve itself. The DASF PDF already walks the twelve components, and a paraphrase here would be worse than the source. The useful question is whether your agents pass the same gates as your people. A second, weaker path is the incident. DASF is Databricks' framework, not a certification we hold. We use the surfaces it assumes: Unity Catalog, AI Gateway, Model Serving, Apps. We do not claim a partner specialisation we do not have. Almost every team that asks us about AI security has not yet written down what a good answer is. Build the rubric first. [Genie Accuracy](/databricks/genie-accuracy) and [Fabric Experiments](/accelerators/fabric-experiments) are that work. Then the gates have something real to protect. The service line is [AI systems](/services/ai-systems). Troy's line still holds: draw the permissions boundary in the first conversation. --- ## Beyond Basic Data Catalogs: How Unity Catalog Solves Real Enterprise Governance Challenges URL: https://www.techfabric.com/blog/beyond-basic-data-catalogs-how-unity-catalog-solves-real-enterprise-governance-challenges Date: 2025-07-09 Author: Preetham Reddy ![](/blog-media/02805f2a-UC.png) A catalogue that only records tables will not answer the questions a security team actually asks: who can see a row, who changed it, and whether an agent is held to the same grant as the analyst sitting next to them. We considered running our own context store outside Databricks, which would have been quicker, and which would also have meant copying governed data into a second system and then explaining why two permission models existed. Unity Catalog stays the single place access is decided. That is why Fabric runs on it. ## What actually breaks Hive metastore leftovers. Schemas that were never moved because the pipeline already worked. A service principal granted ALL PRIVILEGES for a Thursday demo. Coverage that looks complete in the catalogue browser and stops halfway when you list every schema. Troy wrote about the lakehouse version of this in [Unity Catalog before the first pipeline](/blog/unity-catalog-before-the-first-pipeline). The [Databricks Health Check](/databricks/health-check) is the two-week look: privilege hygiene, orphaned compute, the jobs that should be serverless. [Fabric Radar](/accelerators/fabric-radar) is what we use if we stay to make the interventions governed. Glue, Purview and BigLake each do a job. The job we are hired for is a Databricks programme where the applications and the agents have to inherit the same grants as a person. Unity Catalog is how that job is even possible. A second catalogue next to it is how it fails. ## What we do with it Catalogue and schema design that matches how the teams actually work. Grants that a security review can read. Lineage that stays intact as data moves. Databricks Apps and agents running under their own service principal, so they cannot reach what they have no grant for. Fabric Harness resolves tools through Unity Catalog for that reason. If you are standing the lakehouse up, that is the [Launchpad](/databricks/launchpad): Unity Catalog before the first pipeline. If you already have a workspace and you are not sure the grants hold, start with the Health Check. Used properly, an audit becomes a query. Used as a sticker on a hive_metastore estate, Unity Catalog is furniture. The Health Check will tell you which one you have. --- ## Migrating from Legacy Data Warehouses to Databricks Data & AI Platform URL: https://www.techfabric.com/blog/migrating-from-legacy-data-warehouses-to-databricks-data-ai-platform Date: 2025-07-03 Author: Preetham Reddy ![](/blog-media/03e4b253-migration.png) The date moved in March because someone counted tables. A steering committee had a cutover weekend, a slide with a number on it, and a vendor who said most of the SQL would convert. Six weeks later the number was still the number, and the date was June, then September. The objects that did not convert were not a surprise to the people who lived in that warehouse. They had just never been written down. That is the usual shape. Conversion is the part the tools are good at. Scope is the part that slips. ## What we got wrong the first few times We used to start with architecture: target catalogue, medallion layers, the ingestion path, a picture of Unity Catalog. It is satisfying work. It does not move a date. The date moves when a downstream report nobody put on the list still points at a view that was supposed to be retired, or when a stored procedure hides a rule that three teams depend on, or when the security model on the source does not map onto Unity Catalog without a fight. Lakebridge will tell you what the SQL does. It will not tell you which wave that object can safely go in. So we stopped opening with the target. We open with the estate as it actually is. ## The first two weeks We sell those two weeks on their own now, as the [Migration Readiness Sprint](/databricks/migration-readiness). They run on [Fabric Airlift](/accelerators/fabric-airlift), which composes Databricks Lakebridge for profiling, analysis, SQL conversion and reconciliation, then wraps that in a ledger: what was accepted into scope, which tool version produced each artifact, what evidence would prove it ready. At the end you have: - Every object dispositioned as in scope, excluded, or owned by a person - The exclusions written down, so the scope still holds in month four - A dependency map and a wave plan that respects it - Parity criteria per object type, agreed before conversion runs - A hard-object pilot, chosen as the thing most likely to break - A go or no-go, with the reasoning shown Some of those sprints say start next month. Some say the licence renewal you are trying to beat is a bad reason to move. We would rather tell you that in week two. ## The residue is the work Lakebridge converts a great deal of SQL. The residue is what a person still has to do, and it is different on every source. On [Snowflake](/databricks/from-snowflake) it is Tasks, Streams, shares and the role hierarchy. On [Azure Synapse](/databricks/from-synapse) it is dedicated SQL sitting next to Spark pools and an Azure Data Factory graph that does not import. On [Teradata](/databricks/from-teradata) it is BTEQ, FastLoad, macros and primary indexes. We have executable playbooks for twenty-seven sources. Those three are the ones we are asked about enough to give them their own page. If your source is Redshift or Oracle or SAP, the sprint is the same two weeks and the residue list changes. Tell us the source and we will say what the playbook covers today. ## Cutover has to reverse A wave cuts over only when its certificate is issued. The certificate is the gate, ahead of any status field in a tracker. Cutover itself runs as checkpoint, apply, verify, with a path back out of an external change, which is the part a risk function will actually sign. A long weekend with a rollback plan nobody has tested is the alternative, and we have watched that alternative fail. A year ago this URL carried a five-step framework: assess, choose a pattern, mitigate, go live. All of it was true and none of it told you which of the four thousand objects were in scope. I am going to leave the warehouse-versus-lakehouse argument alone as well. The people who find this page already have a date, or a licence renewal, or a warehouse that has stopped paying for itself. The useful question is what the move contains. If the source is already a decision, open the page for it. If it is not, start at the [sprint](/databricks/migration-readiness). Bring the people who own the objects. The first conversation is with the engineer who will do the work. --- ## From Data Warehouses to Data Intelligence: Why Your Next Platform Choice Will Define the Next Decade URL: https://www.techfabric.com/blog/from-data-warehouses-to-data-intelligence-why-your-next-platform-choice-will-define-the-next-decade Date: 2025-07-03 Author: Preetham Reddy ![](/blog-media/d1b7f2f1-Screenshot-202025-06-11-20081026.jpg) **From Data Warehouses to Data Intelligence: Why Your Next Platform Choice Will Define the Next Decade** *The journey from storing data to truly understanding it, and what it means for your business* The data revolution didn't happen overnight. While everyone's talking about Generative AI today, forward-thinking enterprises have been building toward data intelligence for over a decade. At TechFabric, we've partnered with countless organizations on this journey, and we've seen firsthand how the right foundation separates industry leaders from those struggling to keep pace. **The Tipping Point: When Data Became Strategic** Remember when data lived in neat, organized Oracle or Teradata warehouses? Those days feel like ancient history now. The internet changed everything, suddenly, data wasn't just numbers in spreadsheets. It was customer behaviors, social interactions, IoT sensors, and unstructured content flowing in at unprecedented volumes. This explosion created a problem: Traditional systems couldn't handle the scale, variety, or speed of modern data. Companies found themselves with valuable information locked away in silos, inaccessible to the people who needed it most. **The Big Data Revolution: Laying the Foundation** The early 2010s marked a turning point. Companies like Uber, Airbnb, and Facebook weren't just collecting data. They were turning it into competitive advantages. This sparked the "big data" era, where organizations realized their information assets could drive real business value. **But challenges emerged quickly as stated below:** - Data silos prevented complete insights - Security and governance became complex - Technical barriers limited who could access insights - Processing speeds couldn't keep up with business needs Enter game-changing technologies like Apache Spark and Delta Lake implemented by Databricks. These open-source innovations solved critical problems: Spark delivered the processing power enterprises needed, while Delta Lake brought reliability and structure to data lakes that were becoming "data swamps." **The Lakehouse Architecture: Breaking Down Barriers** By the mid-2010s, most enterprises were running two separate systems: data warehouses for structured analytics and data lakes for everything else. This created inefficiencies, duplicate costs, and governance headaches. Databricks pioneered the Data Lakehouse revolution and emerged as the de-facto solution, combining the performance and governance of warehouses with the flexibility and cost-effectiveness of lakes. For the first time, companies could store all their data in one place while maintaining the quality and security standards their business demanded. At TechFabric, we've seen the Lakehouse architecture transform operations for our clients. Marketing teams can analyze customer journey data alongside financial teams running quarterly reports, all from the same trusted foundation. **The Intelligence Revolution: Where We Are Today** GenAI hasn't just changed how we think about data, it's revolutionized what's possible. Today's business users expect to query their data in natural language and receive instant, actionable insights. The question isn't whether your organization will adopt AI; it's whether your data foundation can support it. This is where the Databricks Data Intelligence Platform becomes significant. Built on over a decade of innovation, it enables: - Natural language interactions with your private data - Unified governance across all data types and use cases - Custom AI models trained on your unique business context - Democratized analytics for users of all technical backgrounds **Why Your Platform Choice Matters More Than Ever** Here's the reality: The foundation you build today will determine your competitive position for the next decade. Companies that choose platforms built for yesterday's challenges will find themselves constantly playing catch-up. **At TechFabric, we've partnered with Databricks because we believe in solutions that:** - Embrace open standards rather than proprietary lock-in - Scale with your ambitions, not against them - Put governance and security at the center, not as an afterthought - Enable every team member to contribute to data-driven decisions **The Journey Continues: What's Next?** The evolution from data warehousing to data intelligence isn't complete, it's accelerating. Technologies like compound AI systems, advanced RAG models, and AI agents are already changing how forward-thinking companies operate. The organizations that will thrive are those that: - Build on unified, governed data foundations - Empower all users, not just technical experts - Continuously adapt and improve their AI capabilities - Choose partners who understand both the technology and the business impact **Ready to Transform Your Data Strategy?** The shift to data intelligence isn't just a technology upgrade, it's a fundamental reimagining of how your organization creates value from information. At TechFabric, we don't just implement platforms; we partner with you to unlock the full potential of your data assets. Our team combines deep technical expertise with real-world business experience to ensure your Databricks implementation drives measurable results from day one. **The future belongs to data-intelligent organizations. The question is: Will yours be one of them?** ‍*‍* *Ready to explore how the Databricks Data Intelligence Platform can transform your organization? Connect with our team at TechFabric to discuss your unique challenges and opportunities. Let's build your data intelligence foundation together.* **#DataIntelligence #Databricks #AI#DataStrategy #DigitalTransformation #TechFabric** --- ## Driving Real-World Value with Intelligent Business Intelligence, BI in the era of AI URL: https://www.techfabric.com/blog/driving-real-world-value-with-intelligent-business-intelligence---bi-in-the-era-of-ai Date: 2025-07-03 Author: Preetham Reddy ![](/blog-media/4d458204-AI-20BI2.jpg) **Driving Real-World Value with Intelligent Business Intelligence, BI in the era of AI** A true revolution is underway in business intelligence, and it's driven by a major new feature called **Databricks AI/BI**. This isn't just an incremental update; it's a fundamental shift in how we extract value and insights from our data, ushering in a new era of intelligent analytics. For too long, traditional BI tools have offered static dashboards and required specialized skills to truly unlock insights from complex, real-world data. Databricks AI/BI is changing this by going beyond surface-level reporting. It's an intelligent analytics solution built from the ground up to deeply **understand the true semantics of your data**. This means it grasps the context, relationships, and nuances of your information, transforming raw data into meaningful, actionable intelligence. What defines this new era and makes AI/BI a game-changer? - **Simple, Intuitive Dashboards:** Get the essential insights you need quickly with user-friendly, low-code dashboards designed for clarity and ease of use. - **Conversational AI (Genie):** Imagine asking complex data questions in plain English, just like you'd chat with a colleague. Genie provides accurate, certified answers, constantly learning and improving from your interactions and feedback. This democratizes data access like never before. - **Deep Semantic Understanding:** Powered by a sophisticated AI system, AI/BI learns from every data interaction across the Databricks platform, from ETL pipelines to every query. This continuous learning ensures unparalleled accuracy and relevance in its responses. - **Clean integration & Performance:** Built directly on the Databricks Data Intelligence Platform, AI/BI offers unified governance, complete data lineage, secure sharing, and lightning-fast performance, eliminating data silos and extraction complexities. ![](/blog-media/ec6c8377-AI-20BI.jpg) Recently, we conducted a Proof of Value for a key client in the retail sector. By leveraging Databricks AI/BI, we successfully demonstrated how their sales and operations teams could gain instant, natural-language answers to complex inventory and supply chain questions, drastically reducing the time spent on manual reporting and empowering faster, more informed decisions. The client was impressed by the speed of insight and the intuitive interface that eliminated the need for specialized data knowledge. This complete approach empowers more individuals across your organization to confidently answer their own questions, reducing bottlenecks and accelerating decision-making. It's about putting the power of data directly into the hands of those who need it most, fostering a truly data-driven culture. Ready to explore how intelligent analytics can transform the way your team works and uncover insights you never thought possible? Or perhaps you're interested in a PoC to see AI/BI's potential for your unique challenges? Let's connect! **As a preferred C&SI partner for Databricks, we're ready to take your Data & AI strategy to greater heights and unleash the transformation for you to experience it firsthand.** #DataAnalytics #BusinessIntelligence #AI#Databricks #DataDriven #Innovation #DigitalTransformation#AnalyticsForEveryone #Consulting #SystemsIntegration #ClientSuccess #Partnership ‍ ‍ --- ## Rethink AI: Building a Horizontal Layer for Enterprise-Wide Transformation URL: https://www.techfabric.com/blog/rethink-ai-building-a-horizontal-layer-for-enterprise-wide-transformation Date: 2025-01-14 Author: John Bellaud **There is no question Artificial Intelligence (AI) is changing how we approach problem-solving and innovation in business.** For most companies, AI is a vertical layer they are looking at to solve specific areas. Company A sees it as a way to streamline sales by automating client profiles and sales recommendations, while Company B sees it as a way to gain efficiency in route planning for their field service teams. What both these companies are missing is to use the full potential of AI, they need to stop treating AI as an add-on to existing software or processes (vertical) and view it as a true horizontal layer that permeates across the entire organization, driving efficiency, scalability, and transformation at every level. ![](/blog-media/80432875-07303d6c.jpeg) ## **Looking at AI as a Horizontal Layer** In the new era of AI, businesses have adopted AI as an enhancement to specific software or processes, an "AI-powered add-on" bolted onto existing systems to augment isolated functions. We've all seen this with the explosion of AI copilots and companions showing up daily in the market. While this approach can certainly deliver short-term value, it only scratches the surface of AI's potential. In contrast, business innovation leaders and those moving rapidly on AI are treating it as a **horizontal layer** that integrates it into the core of business operations. They are looking at AI differently, understanding that it can positively disrupt every area of business from operations to sales to manufacturing, and even HR. The forward-thinking or "horizontal" view is all about implementing AI to enabling smooth interaction across all departments and systems. Think of AI as the connective tissue that binds disparate business or system functions together. Whether it's customer service, supply chain optimization, or financial modeling, AI-powered applications provide insights and automation that transcend our traditional silos. This complete approach to integration ensures that AI influences decision-making and operational efficiency throughout the entire organization, not just as an add-on to a single application. ![TechFabric Diagram AI As Horizontal Layer IN Business](/blog-media/cb56220f-4cbed257.png) ### **A Practical Example: AI in Retail Inventory Management** A good use case that illustrates AI's role as a horizontal layer is in retail inventory management. Imagine a retailer with hundreds of stores and an large online presence. Rather than using AI as a standalone tool to forecast demand for specific locations, they implement a horizontally integrated AI solution that works across the business connecting multiple systems and data streams including inventory systems, supply chain logistics, and sales data across all channels. Here's how it works: - **Real-time Insights:** AI-powered applications analyze real-time sales data, seasonal trends, and even external factors like weather or regional events to predict demand. **‍** - **Automated Replenishment:** Instead of relying on manual inventory checks, the AI layer triggers automated replenishment orders, ensuring stock is at optimum levels while reducing waste. **‍** - **Dynamic Pricing:** By continuously evaluating market trends, competitor pricing, and inventory levels, AI adjusts prices dynamically to maximize profitability without humans spending tons of time on research, comparisons and compiling data. **‍** - **Enhanced Customer Experience:** AI personalizes product recommendations based on inventory availability and customer preferences, bridging online and offline shopping to create a single, smooth experience. The impact? A unified, AI-powered system that reduces costs, boosts sales, and enhances customer satisfaction, all while operating inconspicuously in the background. This is not an add-on feature but a fully significant horizontal layer that redefines how the business operates. ## **Moving Beyond Single Application, AI Co-Pilots** AI co-pilots, tools that assist users in specific tasks, are valuable but also represent a limited scope of AI's potential. Co-pilots are often applied to individual applications or workflows, such as answering complex questions, compiling time-intensive data or creating reports. In contrast, an AI horizontal layer influences and affects multiple facets of the organization simultaneously and in concert. Let's look at customer service as a key example. An AI co-pilot might assist agents in looking up information and drafting responses, but an AI-powered horizontal layer would proactively identify trends in customer inquiries, suggest systemic improvements, and automate routine interactions, impacting not just the service desk but also product development, marketing, and logistics around it. ### **Benefits of AI as a Horizontal Layer** 1. **Unified Data Utilization:** By integrating AI across the organization, businesses can break down data silos, facilitating smarter, data-driven decisions. **‍** 2. **Opps Efficiency:** Automation at scale reduces the need for manual intervention, freeing up resources to focus on areas that matter most. **‍** 3. **Scalability:** AI-powered applications grow with the business, adapting to new challenges and opportunities without requiring separate integrations. **‍** 4. **Resilience:** Horizontal AI layers offer a strong foundation that responds dynamically to disruptions, helping ensure continuity and adaptability throughout the business. ### **Embracing the Shift** To fully implement and harness AI as a horizontal layer, businesses must invest in infrastructure that prioritizes interoperability and scalability. Cloud-based platforms and data warehouses (think Databricks or Snowflake), and modern APIs are essential to ensure that AI applications can cleanly interact across systems. Second but not secondary, fostering a culture of collaboration between AI experts, IT teams, and business leaders is crucial to align AI's capabilities with organizational goals. Without conjoining these roles, companies risk AI remaining silo'd without by-in from internal leaders and collaboration across the entire org. #### **Conclusion** The future of AI lies in its integration as a horizontal layer within businesses, not as an afterthought or add-on. Like many iterations of software before it, AI is becoming a layer of abstraction that will ultimately sit on top of all systems and data within an organization. Forward-thinking enterprises are already seeing this principal emerge and embedding AI into the foundation of their operations as a ***horizontal layer***. This change in thinking allows them to tap a nearly unlimited well of efficiency, increasing ease of innovation while gaining new levels of resiliency and flexibility Use cases like retail inventory management truly illustrate how this approach transforms not just processes but entire business models. If there is one takeaway from this article, its this -- It's time to think beyond co-pilots and single applications of AI and start building AI into and across the entire ecosystem. Why limit our thinking to a single application when it is already clear AI, when applied as a horizontal layer, can drive meaningful, enterprise-wide efficiency and change. --- ## Using Application Insights as a Sink for logging in ASP.NET Core URL: https://www.techfabric.com/blog/using-application-insights-as-a-sink-for-logging-in-asp-net-core Date: 2024-12-17 Author: TechFabric ASP.NET Core has very extensible logging interface. I provides an ILogger interface along with few default implementations that can be used to log data. Many third party logging providers are available that ties into ILogger interface, to send your log data to the sinks of your choice but Application Insights is very easy to set up and can help you with exploring the log data using rich query language (Kusto Query Language). Depending upon your needs, you can either choose to use the default interface or some of the more advanced logging frameworks like Serilog to capture log data. Here I'm going to show you how to configure Application Insights as one of the Sinks for your logger. It's so simple and easy to use, you'll get addicted to it once you find your way around it. You logs will be merged with other telemetry data coming from your applications, so you'll be able to correlate multiple events generated per user request and build rich insights. As your application complexity grows or more Microservices are added to your stack, it'll make it very easy for you to understand what's going on within the system and help you identify bugs or anomalies quickly. First, add reference to the following nuget packages - Microsoft.Extensions.Loggging.ApplicationInsights (v2.9.1) - Microsoft.ApplicationInsights.AspNetCore (v2.6.0 or later) Configure Logging in Program.cs as shown below: public class Program { public static void Main(string[] args) { var host = BuildWebHost(args); var logger = host.Services.GetRequiredService>(); logger.LogInformation("From Program. Running the host now.."); host.Run(); } public static IWebHost BuildWebHost(string[] args) => WebHost.CreateDefaultBuilder(args) .UseStartup() .ConfigureAppConfiguration((hostingContext, config) => { var env = hostingContext.HostingEnvironment; config.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true) .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true, reloadOnChange: true); }) .ConfigureLogging((hostingContext, logging) => { logging.AddApplicationInsights(hostingContext.Configuration.GetSection("Logging")["Application Insights:InstrumentationKey"].ToString()); logging.AddFilter("", LogLevel.Trace); logging.AddFilter("Microsoft", LogLevel.Warning); }) .Build(); } .NET Core 2.1 (and above) provides an easy way to get access to configuration information as early as possible. Here, we were able to read Application Insights Instrumentation key while initializing the program. The instrumentation key could be different for each environment so we need to read it before configuring Applications Insights Sink for logging. While the above configuration is good enough if you would like to capture bare minimum Telemetry data, but if you want to combine regular application monitoring (Requests, Dependencies etc., ) you've got to do few more stuff in startup.cs. Add the following in the Configure Service method. This will enable regualr application monitoring with default configuration(ServerTelemetryChannel, Live Metrics, Request/Dependencies, Correlation etc., ) services.AppApplicationInsightsTelemetry("instrumentationkey"); services.AddSingleton( new Func( (IServiceProvider provider) => new TelemetryClient() { InstrumentationKey = "InstrumentationKey"; } ) ); Add the following in the Configure method var appInsightsLogLevel = Configuration.GetValue("Logging:Application Insights:LogLevel:Default"); loggerFactory.AddApplicationInsights(app.ApplicationServices, appInsightsLogLevel); That's it. Once it's done, you should be able to sprinkle your logging statements all over the codebase and let Applicaiton Insights do it's magic. [Route("api/GetOrder")] [ApiController] public class GetOrderController : ControllerBase { public IGetOrderService _service; public IConfiguration _configuration { get; } public ILogger _logger { get; set; } public GetOrderController(ILogger logger, IGetOrderService service, IConfiguration configuration) { _logger = logger; _service = service; _configuration = configuration; } /// /// Get Order info POST method /// /// /// [HttpPost] [EnableCors("default")] [ProducesResponseType(201, Type = typeof(object))] [ProducesResponseType(400)] public async Task Post([FromBody]GetOrderInfoDTO orderInfo) { if(!ModelState.IsValid) { _logger.LogError("Invalid Request"); return BadRequest(); } try { _logger.LogInformation("Fetching Order Information"); var _orderInfo = await _service.GetOrderInfoAsync(orderInfo); if (_orderInfo == null) { _logger.LogInformation("Can't find the order. Please try again"); return NotFound(); } else { return Ok(_orderInfo); } } catch(Exception ex) { _logger.LogError(ex.Message + " " + ex.StackTrace); return BadRequest(); } } } That's it. The Application Insights will start showing all the requests/errors in the portal. ‍ --- ## Introducing Azure AI Foundry: A CTO's Guide to Starting and Scaling AI URL: https://www.techfabric.com/blog/introducing-azure-ai-foundry-a-ctos-guide-to-starting-and-scaling-ai Date: 2024-12-12 Author: John Bellaud As a CTO, you're navigating one of the **most demanding eras** in modern tech. Sure, the **emergence of AI** brings nearly limitless opportunities, but it also comes with big challenges. You need to **maintain current systems**; but you're also expected to deliver innovative, **AI-powered solutions** that drive growth -- all while managing tight budgets, scaling teams, and staying ahead of the competition. **It's a tall order.** When the business says things like, "Our competitors just **launched a new AI copilot**, why don't we have one?" or "We have a board meeting next Tuesday, where are we on**AI initiatives?**", you won't be scrambling, **you'll be ready**. That's where**Azure AI Foundry can help you**. The latest offering from Microsoft, AI Foundry is designed to accelerate AI development, deployment, and governance by providing a ready-made platform with lots of prebuilt frameworks and models to quickly enable tech leaders and teams to jump in and get started. **So how does Azure AI Foundry help me?** Let's explore. ## **What Is Azure AI Foundry?** Azure AI Foundry is a part of Microsoft's larger AI ecosystem, rolling up previous AI tools along with new offerings. It uses existing platforms like **Azure AI Studio** to streamline the lifecycle of advanced (and applied) AI solutions. It combines necessary tools, **prebuilt NLP and LLM models**, all wrapped in a highly collaborative environment giving teams the means to build and deploy AI applications faster and with less friction. ![Exploring the new Azure AI Foundry](/blog-media/5afe935b-770402fc.png) The simplest way to think of Azure AI Foundry is a centralized workspace where your development teams can: - Access pre-trained models for rapid prototyping. - Fine-tune AI models to fit your specific business needs. - Deploy AI applications securely and at scale. - Do it all in a single environment. To you, this means less time managing complex technical issues and more time driving innovation and growth. Beyond providing a full suite of AI tools to manage all areas, Foundry is also fully integrated with all existing Azure services while giving you the flexibility to integrate with preferred third-party tools. As your AI practice grows, you aren't limited to Azure's ecosystem and add-ons, which can be an issue with other platforms. ## **Why Should CTOs Like You Care?** Azure AI Foundry **simplifies the path to AI**, and gives you the platform, tools, and direction to demystify AI and get your initiatives up and running. Instead of putting all your energy into architecting and building infrastructure, models, etc., Foundry allows you to get to what's most important - providing real business value, faster. Let's break down some specific areas Foundry streamlines AI dev: 1. **Accelerated Development with Pre-Trained Models** Azure AI Foundry gives your teams access to pre-built AI models for common use cases, such as NLP (Natural Language Processing), computer vision, and predictive analytics. **Why it matters:** Your teams spend less time reinventing the wheel and more time customizing solutions. 1. **Fine-tuning for Business Relevance** Pre-trained models are great, but every business is different. Foundry's fine-tuning capabilities allow your developers to adapt AI models to specific datasets and use cases, boosting performance and relevance. **Why it matters:** This means tailoring AI for better accuracy, improved user experiences, and greater impact on business outcomes. 1. **Secure and Scalable Deployment** Security is a top concern for any CTO, especially when working with sensitive data. Azure AI Foundry is built with enterprise-grade security so you can confidently deploy AI solutions. Plus, its scalability means you can grow without hitting operational bottlenecks. **Why it matters:** Trust and scalability are imperatives when integrating AI into mission-critical systems. Take a look at the diagram below showing Azure Foundry's high-level architecture. It provides all the key elements your development teams need to set up and execute. ![Diagram of the high-level architecture of Azure AI Foundry.](/blog-media/4371d217-ebc2daab.png) ### **Key Foundry Features That Matter** - **Collaborative AI Studio**: Foundry's AI Studio provides an easy-to-navigate interface for developers, data scientists, and business stakeholders to collaborate effectively. **Why it's relevant:** It fosters cross-team alignment, speeding up AI adoption across departments. - **Model Governance Tools**: Built-in governance tools ensure compliance with regulations and ethical standards, an increasingly important consideration in AI. **Why it's relevant:** Mitigate risks while scaling AI responsibly. - **Azure OpenAI Integration**: Foundry uses Azure OpenAI services, allowing your teams to access leading-edge generative AI capabilities like GPT-based models for advanced applications. **Why it's relevant:** Stay competitive with state-of-the-art AI solutions. ### **What Sets Azure AI Foundry Apart from the Rest?** For starters, it's a **product by Microsoft** and AI is an area they are investing heavily in. Following other best-in-class cloud products, Foundry combines Microsoft's **Azure cloud infrastructure** with a focus on usability and integration for enterprises. It's designed for both advanced AI practitioners AND technical leaders who need a **clear path from AI investment to ROI.** With **models built for every industry**, Azure AI Foundry offers the tools and frameworks to turn ideas into actionable solutions. Moreover, its ability to **integrate cleanly with Azure** **DevOps** and **Power BI**ensures end-to-end workflows and dashboards give you the full visibility you need. ## **Wrap-Up: A Sure-Fire Catalyst for Your AI Strategy** If you are one of the **over 60% of CTOs** struggling to navigate AI and where to start, **Azure AI Foundry can help you.** It dramatically **simplifies AI development** and deployment, all in one centralized platform. With pre-trained models, fine-tuning capabilities, and smooth scalability, this platform is designed to help **accelerate innovation** without losing business focus. #### **Why start with Azure AI Foundry?** - **Save time** with pre-built AI frameworks for rapid development.  **‍** - **Stay secure** with enterprise-grade protection for sensitive data. - ‍**Scale smarter** with tools that grow with your AI strategy. **For CTOs**, it's a game-changing experience to transform AI from a **technical experiment** into ways to effectively **drive business growth**. Whether you've identified specific use cases for AI in your organization or are trying to gain understanding on how AI can work for you, Azure AI Foundry provides the tools to show you the way and make it happen. *TechFabric is a premier Microsoft Partner trusted by enterprises to strategize, build, deploy and optimize solutions across the wide MS ecosystem.* Want To Learn More About Microsoft's Azure AI Foundry Explore --- ## Using Traefik Reverse Proxy For Securing Microservices On Azure Service Fabric URL: https://www.techfabric.com/blog/using-traefik-reverse-proxy-for-securing-microservices-on-azure-service-fabric Date: 2024-12-11 Author: Preetham Reddy Service Fabric is a[**Microservices platform**](/blog/azure-service-fabric-is-amazing) by Microsoft, similar to Docker Swarm/Kubernetes. It provides great features out of the box and helps orchestrate and manage your microservices. When you deploy your web applications to Service Fabric, it's a good idea to have them exposed through a reverse-proxy instead of exposing them directly to the outside world. While Microsoft does provide a reverse-proxy out of the box, it severely lacks in features and functionality. It also exposes all your microservices running in the cluster directly to the outside world. There is no way to restrict access to certain microservices and enable access to other ones (unless you do that in the code). Its all or nothing. This has always bugged me because I shouldn't have to write custom code if I don't want to expose my services. While there are other options like using API Managment to expose the service endpoints securely, it might be an over kill if you don't want to use many of the API management features. Its expensive and adds lot of overhead in managing the endpoints. Besides, API Management doesn't help in exposing websites, it's only for the APIs. Thankfully, [**Traefik**](https://traefik.io/) reverse proxy is an awesome tool created by extremely talented folks at [**Containo.us**](https://containo.us/) that can help us in safely exposing our services. Besides acting as a reverse proxy, it also acts as a load balancer, circuit breaker too... It supports automatic SSL creation using [**Let's Encrypt**](https://letsencrypt.org/), provides great metrics on how your services are being used, along with providing a clean web interface to visualizse everything. It's open-source and completely free! In short, there isn't a reason to not use such an amazing tool. It supports quite a few backends like Docker, Kubernetes, Mesos, Consul etc., along with Service Fabric. ![Image taken from Traefik.io](/blog-media/52c0c72e-6706a6321e663aa37c06bc4a_64c3b37ecf510ce29a9d3f14_66d54368-4153-4f86-9db0-25185a706015_) ‍ ## How does Traefik work with Service Fabric Traefik is distributed as an .exe file that will be deployed to Service Fabric Cluster as a guest executable. The process is the same as deploying any other Microservice to the cluster. The difference is, Traefik has a built-in Service Fabric Provider that will query the Service Fabric Management APIs to discover what services are running in the cluster (known as backends). The provider then maps the routing rules (known as frontends) to these service instances. Traffic to the services flows through the entry points, which are then matched and mapped through the frontends. Each request is then load balanced across various service instances in the backend. The rules for load balancing can be configured on the Traefik configuration file. It's possible to use Traefik as a very efficient HTTP load balancer to distribute traffic to several microservices to improve performance, stability and reliability of web apps/apis using it's very powerful configuration rules. Instructions on how to use Traefic on [Service Fabric](/blog/azure-service-fabric-is-amazing) are provided here: ‍ 1. Clone this repository to your local machine. 2. Download the Træfik binary into the solution by running the following PowerShell script. 3. Open the *Traefik.sln* file in Visual Studio 4. Træfik must authenticate to the Service Fabric management API. Currently, you can only do this using a PEM formatted client certificate. If you only have a *.pfx* certificate you will need to convert it using the following commands: • Extract the private key from the *.pfx* file *Træfik only requires read-only access to the Service Fabric API and thus you should use a Read-Only certificate.* 5. Copy your generated certificate files to the Code\certs folder Træfik expects to find them in. 6. If you wish to track the new certificate files in Visual Studio, you'll need to add them to your solution by right clicking on the ***$REPO_ROOT\Traefik\ApplicationPackageRoot\TreafikPkg\Code\certs*** folder and selecting ***Add Existing Item***, navigate to the certificates on local disk and select Add. ‍ 7. Open ***($REPO_ROOT\Traefik\Traefik\ApplicationPackageRoot\TraefikPkg\Code\traefik.toml)*****in a text editor. If you're using a secure cluster, ensure the TLS configuration section is uncommented and make sure the provided certificate paths are correct. Additionally, change the clustermanagementurl to use the prefix ***(https://)***. > **The clustermanagementurl setting is relative to where Træfik is running. If Træfik is running inside the cluster on every node, the clustermanagementurl should be left as http[s]://localhost:19080, if however, Træfik is running externally to the cluster, an accessible endpoint should be provided. If you are testing Traefik against an unsecure cluster, like your local onebox cluster, use http://localhost:19080** *8. Optional* You can choose to enable a watchdog service which will report stats and check Traefik is routing by sending synthetic requests and recording the results. The results of these checks are sent to Application Insights. 9. You can now simply publish Træfik from Visual Studio like any other Service Fabric application. Right click on the project, select Publish and follow the publication wizard. I've created two microservices that are just deployed to the local Service Fabric Cluster. The services are still being deployed to varioud nodes in the cluster. ![Microsoft Azure screenshot.](/blog-media/513a276e-6706a6321e663aa37c06bc6f_6554ef48a9513411ede803b6_2c8e2584-6ead-45b2-b478-771823c6e718_) • To be able to ingress external requests via Traefik, you'll need to open up and map the relevant ports on your public load balancer. For clusters on Azure, this will be your Azure Load Balancer. The default ports are: ***tcp/80 (proxy)*** and ***tcp/8080 (API)*** but these can be configured in ***$REPO_ROOT\Traefik\ApplicationPackageRoot\TraefikPkg\Code\traefik.toml*** and in ***$REPO_ROOT\Traefik\Traefik\ApplicationPackageRoot\TraefikPkg\ServiceManifest.xml****.* 11. Once the load balancer has been configured to route traffic on the required ports, you should be able to visit the Træfik dashboard at http[s]://[clusterfqdn]:8080 if you have it enabled. ![Traefik Dashboard](/blog-media/62508de4-6706a6321e663aa37c06bc60_64c3b37e75cc651c13cb3ad1_cbc721da-0a16-4276-bf2b-5d67afaf4e4e_) **As you can see, the two microservices can be individually accessed through their endpoints but they can also be accessed through the traefik's endpoint localhost:8080. If I don't want to access the microservices directly, I can deny access to their ports on the Service Fabric Load Balancer.** ‍ ## Exposing a Service Fabric Application Træfik uses the concept of **labels**to configure how services are exposed. **Labels allow you to define additional metadata for your services which Træfik can use to configure itself dynamically.** ‍ ## Adding Service labels to assign labels for your service, you can add Extensions to your service's ServiceManifest.xml. Træfik will select any labels prefixed with traefik. Here is an example of using extensions to add Træfik labels: ‍ ## Dynamically updating Service labels Once you've deployed your service with some default labels, you may need to change the way Træfik is routing requests without redeploying. You can overwrite and add new labels to a named service using Service Fabric's Property Management API. Træfik will then pick up these new/updated labels and reconfigure itself. ‍ ### **Setting a label dynamically using curl** > **WARNING: The json provided in the body is case sensitive** ‍ ### **Setting a label dynamically using sfctl** A future release of [**sfctl**](https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-cli) will allow you to operate with properties without make raw HTTP requests. There is an outstanding PR [**here**](https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-cli) if you wish to try this right away. ### **Available Labels** The current list of available labels is documented [**here**](https://doc.traefik.io/traefik/v1.5/configuration/backends/servicefabric/#available-labels). ‍ ## Debugging Both services will output logs to stdout and stderr. To enable these logs uncomment the ***ConsoleRedirection*** line in both ***ServiceManifest.xml*** files. ‍ Once deployed, logs will be stored in the nodes Service Fabric folder. This will be similar to ***D:\SvcFab\_App\TraefikType_App1\log*** but may vary depending on your configuration. *Disclosure : These instructions are provided by Traefik development team and are provided as is. I've tried the same steps on my local box and it works like magic.* Over the next few days, I plan to use Traefik reverse proxy lot more in my production applications and will update here how it performs. ‍ **Cheers** **Preetham Reddy**, Cloud Solutions Architect at Tech FabricTech Fabric specializes in building web, mobile and cloud native application using Microsoft Stack (C#, .NET Core, Xamarin, Azure, SQL Service etc.,). If you need help with taking your on-premise application to cloud or convert your monolithic applications to microservices, we'd be glad to help you out. You can reach out to our sales team at [**contact@techfabric.com**](mailto:contact@techfabric.com) --- ## Taking The Mystery Out Of Microsoft Azure And What It Can Do For Your Business URL: https://www.techfabric.com/blog/taking-the-mystery-out-of-microsoft-azure-and-what-it-can-do-for-your-business Date: 2024-12-11 Author: TechFabric If you're like most business owners, no matter how big your company is or what it does, you're always looking for ways to grow, cut costs and be more efficient. In a nutshell, Microsoft Azure can help you do all of those things. In the sections that follow, we'll go into more detail about how Microsoft Azure can help take your business to the next level. **Data Security** According to the latest statistics, the United States and US businesses in particular are the targets of choice for the world's hackers, and the damage they cause is extensive indeed. The average cost of a data breach of a US company averages a staggering $7.91 million dollars, and that's not counting the intangibles like the loss of consumer confidence in y­our operation. While there's no such thing as a perfect defense against hacking, one critically important thing you can do to protect yourself is to make sure you've got a solid backup system in place. That way, if the worst happens and hackers destroy significant amount of your company's data, you can get your firm back up and running in short order. The problem is that conventional backup methodologies tend to be resource-intensive and expensive. [**Cloud-based backup plans**](https://azure.microsoft.com/en-us/overview/security/) change that, and Microsoft's Azure service takes data backups to the next level. With your data being stored in a total of six different locations for redundancy, you'll never again have to worry about the threat of data loss. **Directory Services** Another thing that companies of all sizes struggle with is access control. Simply put, this amounts to making sure that only the right people have access to sensitive company data. The Azure service is built on the same framework that Windows Active Directory uses, so it's something most people are already familiar with. By putting your company's most important data on the cloud, it's easy to control access from a central console, allowing you a birds' eye view of who has access to what and creating an easy to follow audit trail in the event that something needs to be investigated. **Virtualization** Using Microsoft Azure, creating virtual Microsoft or Linux machines is a snap and can be accomplished in a matter of minutes thanks to Azure's template-driven approach. Even better, the templates are just the beginning, given that they're infinitely customizable. You can create exactly the virtual desktop you want and need, and maintain as many highly customized templates as you like. **Application Services** [**Azure**](/blog/its-time-to-move-your-company-to-the-cloud-heres-why) is much more than simply an infrastructure-as-service offering. It's also a [**platform as a service**](https://en.wikipedia.org/wiki/Platform_as_a_service), which makes it an ideal tool for app development, especially if your development team is far-flung and scattered all across the country, or even all across the globe. Azure boasts a reliable collection of development tools that make it easier than ever for your team to collaborate and create. Even better, when you're finished, the platform makes it simple to roll your new program out to everyone in your company. Back in the 'good old days' of IT, keeping software up to date across your network required a huge investment in time and manpower, with one of your IT staff having to make the rounds and physically go to each PC the software in question was installed on and apply the latest update by hand. Thankfully those days are long gone, but[**Azure**](/blog/its-time-to-move-your-company-to-the-cloud-heres-why)makes keeping applications up to date simpler, faster, and easier than ever before, and again, you can control it all from a central console that gives you a top level view of your network so you can keep tabs on every aspect of it. As amazing as all of this is, it barely scratches the surface. Azure has more than one hundred different app service components built in, and you have access to them all. Here are just a few of the other possibilities you can explore: - The Azure Bot Service - infinitely scalable - Azure Batch AI - Azure Databricks - consider these to be digital legos, useful for building collaborative analytics - Computer Vision - Speech to Text Service - [**Text to Speech Service**](https://www.vocalware.com/index/howitworks) - Cognitive Services - Content Moderator - Azure machine Learning - Microsoft Genomics, obviously not for every company, but if you're in the biotech field, this service is invaluable - SQL Data Warehouse - Data Lake Analytics - Development File Repositories - DevOps Tool Integrations - Azure Artifacts - Azure DevTest Labs - Event Grids - Azure Maps, intuitive location APIs that provide geospatial context to data - Machine Learning Studio: a complete set of tools for building and managing predictive analytic solutions - Azure IoT Hub, connect, monitor and manage all of your company's smart devices - Azure Service Health - Azure Resource Manager - Traffic Manager - Built-In Scheduler - Network Watcher - Content Delivery Network - And more! The [**Azure platform**](/blog/its-time-to-move-your-company-to-the-cloud-heres-why) does it all, giving you a whole host of powerful, intuitive tools designed to allow you to manage every aspect of your network to be sure that access levels are appropriately set and your system is up to date and performing exactly as it should. **Cost Savings** As you saw in the previous section, the Azure platform has a lot to offer in terms of helping you ensure your network is performing optimally and that your data is safe and secure. Those are all good things, and there's definitely some cost savings potential to be found in the increased efficiencies the platform provides, but that's just the tip of the iceberg. In addition to those savings, Microsoft Azure simply costs less to use than competing products, and it does so while simultaneously offering many more tools than similar products. Take Amazon's AWS service, for example. It's a widely used, undeniably exceptional service, but it costs significantly more to use, it also offers substantially fewer tools and resources, making Azure the logical choice. That's why a staggering 95% of Fortune 500 companies use Azure. Simply put, it's the most trusted name in the industry, backed by the power of one of the largest companies in the world with more than three decades' worth of experience serving Enterprise customers. When you invest in Azure though, you're getting more than just a great service backed by a world-class company. Azure boasts a vast, globe spanning partner network that contains more than 68,000 companies and is the most compliant cloud-based service in existence with more than seventy certifications under its belt. The final thing to mention where cost savings are concerned is this: One of the things that makes [**Azure so affordable**](https://azure.microsoft.com/en-us/overview/azure-vs-aws/cost-savings/) is the fact that you only pay for what you use. Many other cloud-based providers have rigidly defined plans that often see companies constrained by the limits of their current plan, which blunts the usefulness of the cloud service they're employing, or, just as bad are the plans that offer far more than a given company needs, which sees you paying for capacity you're not using. With Azure, you pay for only what you use, and nothing more. That enables a small startup to invest in Azure for an incredibly low price, and enjoy the benefits of infinite scale, with the costs increasing gradually as your business increases in size. While it's certainly true that given a big enough budget, you could invest in sufficient infrastructure to replicate most, if not all of Azure's functionality in-house. The problem with that approach, of course, is that it would take a budget-busting amount of money to accomplish, and you'd need to hire a massive staff solely dedicated to the task of maintaining your sprawling infrastructural footprint. Then, of course, there's the related issue that you'll find yourself with far more in the way of infrastructure and capacity than you need, and when you finally do grow into your investment, further expansion as your business continues to grow would be ruinously expensive and difficult to manage. This is perhaps the biggest and most important advantage Azure offers. It's the ultimate level playing field. You don't have to invest in vast amounts of infrastructure. You can simply use Azure's existing infrastructure, tools and partner network, and best of all, you can do that for an unbelievable low price. Low cost paired with incredible functionality is the key to taking your business to the next level. The bottom line is simply this: Whatever business you're in, Azure can help take it to the next level. It provides an amazing collection of tools and services under a single umbrella, allowing you to start with a modest investment that enables you to explore the possibilities, then scale up as needed as your business continues to grow and thrive. With Azure, the possibilities are truly without limit. There's no end to the ways you can use the platform to help your business grow or run more smoothly. When you're ready to take the next step, getting started with Azure is a lesson in simplicity, and given the company's world-class customer service and support team, you'll begin to master its use in no time at all. --- ## Setting Up Production Ready Infrastructure For Microservices URL: https://www.techfabric.com/blog/setting-up-production-ready-infrastructure-for-microservices Date: 2024-12-11 Author: Preetham Reddy Service Fabric is Microsoft's answer to Microservices Orchestrator. It can help with Service Discovery, Fault Tolerance and containerizing your applications. If you're using Service Fabric cluster to serve your production traffic, it's very important to create a secure cluster and set up reverse proxy to route traffic. I find myself creating Service Fabric clusters regularly for our clients. Instead of creating secure clusters manually everyone using the portal, I've created the Azure ARM template that I can use every time I need to create a cluster. Here are the steps that I follow to deploy secure cluster in production for our customers. - Create a Key Vault to store certificates and secrets - Create a Virtual Network and configure Subnets - Create Application Insights instance for logging telemetry and application events - Set up HoneyComb for Observability - Configure Azure Resource Manager Template for provisioning the cluster - Deploy Traefik Reverse Proxy - Configure Network Security Group rules to control traffic to the cluster - Configure DNS rules in Cloudflare to route traffic to the cluster - Restric traffic to the cluster only from the trusted IPs of Cloudflare ‍ ## Creating a Key Vault Azure Key Vault is a managed solution and provides an easy way to manage Keys, Certificates and Application Secrets. Developers have a tendency to store sensitive data like database connection strings, passwords etc., in the applications configuration files. While it's easy to get your applications up and running, storing sensitive data in a configuration file is a huge security risk. No matter how elaborate your application architecture is, it's only as secure as it's weakest link. By storing sensitive data in configuration files, you're exposing the data to lot more people than the ones who need absolute access to. It's also a very bad idea to commit sensitive information to version control system as it can expose the data to everyone in your company. There are various configuration stores available in the market to help you with abstracting configuration information away from your applications and only give role based access to the data. But they leave the responsibility of managing configuration server to developers. It adds yet another non-business critical application to the list to manage and monitor. Azure Key Vault is a managed solution. You can provision a Key Vault for each environment at the click of a button and never worry about it going down. It exposes very rich API for creating and managing Keys, Certificates and Secrets. It's a must have for your Microservices Architecture. Here's the list of commands you need to run to provision a key vault and upload keys and secrets. ‍ ### Upload Keys**‍** ``` Connect-AzureRmAccount Get-AzureRmSubscription Set-AzureRmContent -SubscriptionId New-AzureRmResourceGroup -Name 'techfabric-keyvault' -Location 'West US' New-AzureRmKeyVault -VaultName 'TechfabricVault' -ResourceGroupName 'techfabric-keyvault' -Location 'West US' -SKU 'Premium' ``` The above set of commands helps you to connect to Azure Subscription, Create a Resource Group and provision a Key Vault in that Resource Group. Once the Key Vault is created, you can use the following command to upload keys in pfx file to Azure Key Vault ``` $PlainPassword = "verysecureplaintextpassword" $SecurePassword = $PlainPassword | ConvertTo-SecureString -AsPlainText -Force Add-AzureKeyVaultKey -VaultName 'techfabric-keyvault' -Name 'tecfabrickey' -KeyFilePath 'techfabric.pfx' -KeyFilePassword $SecurePassword ``` First your convert plain text password into a secure password and provide it as a parameter to the powershell command that upload keys in the pfx file to azure key vault. Once this is done, the key is available for your application to use. You can similarly upload the certificate too. ``` Import-AzureKeyVaultCertificate -VaultName "techfabric-keyvault" -Name "newcert" -FilePath "star.newcert.pfx" -Password $SecurePassword ``` ‍ ### **Upload Secrets** Secrets are ideal for storing configuration information in a secure way. Here are the steps you need to do to upload secrets. ``` $PlainSecret = "VerySensitiveValue" $Secret = $PlainSecret | ConvertTo-SecureString -AsPlainText -Force Set-AzureKeyVaultSecret -VaultName 'techfabric-vault' -Name 'SecretPassword' -SecretValue $Secret ``` That's it. The secret is uploaded and available for you to use in your applications. You can also read the secret value from Powershell commands ``` (get-azurekeyvaultsecret -vaultName 'techfabric-vault' -name "SecretPassword").SecretValueText ``` ### Provision a Secure Service Fabric Cluster Creating a production ready service fabric application has been covered in my previous article [**here**](/blog/deploying-service-fabric-cluster-to-existing-vnet-with-containers). ‍ ### Provision an Application Insights Instance Creating Application Insights Instance and configure your .NET Core Microservices to capture telemetry and other application events is covered in this article, **here**. ‍ ### Set up HoneyComb for Observability and Testing in Production Once your Microservices are deployed to production, it's important to observe how your applications are performing and be able to validate your assumptions. It's also very important to be able to take a peek on performance metrics, errors and other stats while it's being used live. [**HoneyComb**](https://www.honeycomb.io/)enables just that. ‍ ### **Deploy Traefik Reverse Proxy to Service Fabric Cluster** [**Traefik**](https://traefik.io/)is an awesome open source Reverse Proxy that protects your application from external threats and makes it very easy to provision SSL certificates, route traffic to the right services through Auto Discovery feature and helps with Tracing and Metrics. We use Traefik in all our Service Fabric clusters and the process of deploying it as a guest executable into your service fabric cluster is covered in this article, [**here**](/blog/using-traefik-reverse-proxy-for-securing-microservices-on-azure-service-fabric). Once you deploy Traefik to Service Fabric, it automatically detects all the services running in the cluster and determines the routing rules. Traefik will be the only application in the Service Fabric cluster that'll be exposed to the outside world. Incoming traffic is evaluated and based on the routing rules configured in each service, the traffic is routed to appropriate service to handle the request. Since Traefik acts a a middle-man, it can inspect the traffic and can make the decision to reject the request, or forward the request to the services. It can also automatically renew the SSL certificates using Let's Encrypt, so you never have to worry about expiring certificates in production. ‍ ### Configure Inbound Rules in Network Security Group It's not enough for you to set up a secure cluster. Each Subnet in a Virtual Network can be associated with a Network Security Group which has a set of Inbound and Outbound Rules. It's very important to make sure all inbound traffic is denied by default. Then NSG rules can be applied to only those ports that needs to be exposed to outside world. ‍ ### Cloudflare as Edge Proxy Lastly, We recommend using [**Cloudflare**](https://www.cloudflare.com/)as an Edge Proxy that acts as a front line of defense for all incoming traffic. Cloudflare is one of the worlds largest and most secure Edge Proxies. It has worlds leading technology to protect against DDoS attacks. Here's the list of all the things Cloudflare can do for you at the click of a button. ![Statistics about Cloudflare Advantages.](/blog-media/ad4a040f-66fd9c6d522248a4d8c164fc_64c3a298c7ceaf7caaac4d41_c9fa7022-1d3d-4917-9ab9-3d70a5f5c608_) _The Cloudflare Advantage_ If there is a Denial of Service attack against your application, Cloudflare's technology will make sure those attacks are neutralized before any of that traffic reaches your applications. It can also help with proactively monitoring requests and rejecting anyone with malicious intent like SQL Injection attacks etc., Cloudflare can also help you with Edge Caching, saving you hundreds of giga bytes of bandwidth for requests that never reach your server. Drawing from my experience of provisioning tons of Service Fabric Clusters for our clients, we've deployed many applications on Microservices architectures and have been very successful in mitigating any external threats and making sure the applications are secure and functioning to their full potential. --- ## Deploying Service Fabric Cluster To Existing VNET With Containers URL: https://www.techfabric.com/blog/deploying-service-fabric-cluster-to-existing-vnet-with-containers Date: 2024-12-11 Author: Preetham Reddy Service Fabric is a terrific platform for orchestrating your Microservices. It provides many features like Service Discovery, Fault Tolerance, Reverse Proxy etc., out of the box, making it extremely easy to manage your Microservices. Unlike other orchestrators like Kubernetes, it has a very rich developer tool-set and if your services are developed using .NET Core or other Azure Services, lot of things work out of the box. Microsoft provides ARM templates to easily create a secure cluster, complete with creating Virtual Networks, configuring Subnets, Network Security Groups, Load Balancers etc., If it's a stand alone cluster, isolated from everything else, its ridiculously easy to get up and running quickly. However, most projects are not green field, meaning you don't have the luxury of creating a new Virtual Network for every cluster you provision. Its not feasible and probably not desirable too. Your organization might have already other resources that are deployed to existing Virtual Networks and your new Microservices might have to be deployed to the same VNET to communicate securely with other services or databases. Things can get complicated if you have legacy web applications or APIs that you want to containerize and deploy to the same cluster, to take advantage of Service Fabric's capabilities. ## Configuring Azure Resource Manager Service Fabric is a very extensible platform and provides great flexibility in configuring your cluster using Azure Resource Manager (ARM). ARM is the deployment and management service for Azure resources. It provides declarative way to create, update and delete resources in your Azure Subscription via ARM Templates written using JSON. Microsoft provides some templates to cover few scenarios in their [**GitHub**](https://github.com/Azure-Samples/service-fabric-cluster-templates/tree/master)repo. We can take the one that closely matches to our requirements and then customize them. Most of these templates didn't cover any of our specific needs like deploying to the existing VNET with support for Containers. What makes it complicated is, with containers, you'll get multiple network interfaces on your Virtual Machine and you will have to modify the ARM template to make sure the correct NIC is used for cluster communication. ### Modifying ARM template to use existing VNET One of the most important thing to understand here is, when you're deploying resources to the VNET, you also need to choose a subnet that you're resources will be deployed to. So, in the arm template, we'll have to identity the final subset the resources will be deployed to, construct it in the ARM template, and provide it to the Virtual Machine Scaleset. Add these three parameters in the parameter file. ``` "subnetName": { "value": "ServiceFabricSubnet" }, "subnet0Prefix": { "value": "10.0.0.0/24" }, "vnetUrl": { "value": "/subscriptions/xxxxxxxxxxxxx/resourceGroups/techfabric-qa-network/providers/Microsoft.Network/virtualNetworks/TFabricVnet" ``` Since you're use existing VNET, you don't want your ARM Template to create another VNET. Let's comment out the following lines. ``` /*{ "apiVersion": "[variables('vNetApiVersion')]", "type": "Microsoft.Network/virtualNetworks", "name": "[parameters('virtualNetworkName')]", "location": "[parameters('computeLocation')]", "properties": { "addressSpace": { "addressPrefixes": [ "[parameters('addressPrefix')]" ] }, "subnets": [ { "name": "[parameters('subnet0Name')]", "properties": { "addressPrefix": "[parameters('subnet0Prefix')]" } } ] }, "tags": { "resourceType": "Service Fabric", "clusterName": "[parameters('clusterName')]" } },*/ ``` You also don't want your Virtual Machine Scaleset to depend on any Virtual Network. It can be provisioned before creating any VNET. In the Microsoft.Compute/virtualMachineScaleSets section, comment out the following line. ``` "apiVersion": "[variables('vmssApiVersion')]", "type": "Microsoft.Computer/virtualMachineScaleSets", "name": "[parameters('vmNodeType0Name')]", "location": "[parameters('computeLocation')]", "dependsOn": [ /*"[concat('Microsoft.Network/virtualNetworks/', parameters('virtualNetworkName'))]", */ "[Concat('Microsoft.Storage/storageAccounts/', variables('uniqueStringArray0')[0])]", ``` Those changes should be enough to get your SF cluster deployed to existing VNET. However, if you'd like to deploy your VM that has support for Windows Containers, you'll have to make few more changes. ``` "extensions": [ { "properties": { "type": "ServiceFabricNode", "settings": { . . . "enableParallelJobs": true, "nicPrefixOverride": "[parameters('subnet0Prefix')]" }, } }, ``` By adding nicPrefixOverride, you're making sure correct NIC is used for cluster communication. That's it. When you deploy this to your azure subscription, you'll get a secure cluster that's deployed to your existing VNET and has Windows 2016 Datacenter OS with support for Windows Containers. You'll be able to deploy green field Microservices that are developed using Service Fabric's SDK or you can take your legacy applications, containerize them and deploy them to Windows Containers on the same cluster. It's truly best of both the worlds. The full code can be found [**here**](https://github.com/Tech-Fabric). , Preetham Reddy, Cloud Solutions Architect at Tech Fabric [**TechFabric**](/) specializes in building web, mobile and cloud based application using Microsoft Stack (C#, .NET Core, Xamarin, Azure, SQL Server etc.,). If you need help with taking your on-premise application to cloud or convert your monolithic applications to microservices based, we'd be glad to help you out.You can reach out to our sales team at [**contact@techfabric.com.**](mailto:contact@techfabric.com) --- ## Convert PFX Certificate to Base64 String URL: https://www.techfabric.com/blog/convert-pfx-certificate-to-base64-string Date: 2024-12-11 Author: Preetham Reddy When working on [**Azure DevOps test plan**](/blog/its-time-to-move-your-company-to-the-cloud-heres-why)s, oftentimes you'd have to secure the communication between the resources using certificates. For example, when establishing a secure connection between your VSTS build server and the Service Fabric cluster on Azure, you'll have to give the Base64 encoded version of the pfx certificate that you've used to secure the service fabric cluster. That way, your build server will be able to securely connect to the cluster to deploy packages or other artifacts. Converting the pfx certificate to the Base64 encoded string is easy using Powershell. ``` 1$fileContentBytes = get-content 'C:\Techfabric\TFProcess\Articles\convert\test-cert.pfx' -Encoding Byte 2[System.Convert]::ToBase64String($fileContentBytes) | Out-File 'pfx-encoded-bytes.txt' ``` ![Converting the pfx certificate to the Base64 encoded string](/blog-media/8c944c4c-66fda17af246ed6511c7986f_6618175f4d7f0ad45c096b36_b022507e-9462-4e6f-beeb-b1d34deca0c9.) _Converting the pfx certificate to the Base64 encoded string_ The text file with the necessary bytes will be created in the same folder where the script is run. Enjoy! ‍ , **Preetham Reddy**, Cloud Solutions Architect at TechFabric ‍ [**TechFabric**](/) specializes in building web, mobile, and cloud-based applications using Microsoft Stack (C#, .NET Core, Xamarin, Azure, SQL Service, etc.). If you need help with taking your on-premise application to the cloud or converting your monolithic applications to microservices-based, we'd be glad to help you out. You can reach out to our sales team at [**contact@techfabric.com.**](mailto:contact@techfabric.com) --- ## Azure Service Fabric is amazing! URL: https://www.techfabric.com/blog/azure-service-fabric-is-amazing Date: 2024-12-11 Author: Preetham Reddy Microservices are a great way to develop modern cloud-native applications. Traditional approach to developing software applications where the entire functionality is encapsulated into a single monolith, has many challenges as the functionality of the application grows. Before you know, what started out as a proof-of-concept or an application that's designed to meet the needs of a small set of users, quickly evolves into a huge monolith. With growing size comes growing pain. Monolithic applications are difficult to develop, maintain or enhance. They aren't as reliable as they need to be and significantly increases the development cycle to quickly build and add new features. Microservices approach to developing software addresses most of the issues with developing monolithic applications. If architected correctly, they can assist in rapidly building newer features and enhance the existing system. They can significantly help in reducing the bottlenecks and can improve the agility of the development teams. Since the functionality is broken down into small set of services as opposed to one large application, developers can quickly spin up new services as the needs arise. Making changes to one service will have little to no effect on other services. If it's coupled with other strategies like Event Sourcing, Continuous Integration, Continuous Deployment etc., it'll be a breeze to continuously develop new services and enhance the existing ones. Development cycles will be much shorter and newer features can be rolled out much more quickly. Having said that, if you're not careful, Microservices approach can introduce more problems than they solve. Microsoft Azure Service Fabric is designed to alleviate some of the pain points and provide a platform to manage those microservices effectively. Tooling around developing Microservices comes in various flavors. You can take the containers approach to developing Microservices (using [**Docker**](https://www.docker.com/what-docker) or Windows Containers) and manage them using [**Docker Swarm**](https://www.docker.com/what-docker) or [**Kubernetes**](https://kubernetes.io/). Each container can have a set of services bundled with-in it and can work independently. You can also use a managed platforms like [**Azure Service Fabric**](https://azure.microsoft.com/en-us/services/service-fabric/) provided by Microsoft. Applications developed using Service Fabric platform can be deployed on an on-premise cluster or through a cluster created on a cloud provider of your choice. Of-course, Microsoft Cloud has the first class support for provisioning Service Fabric Clusters through the portal or via ARM Templates. I personally prefer managed platforms like Service Fabric because it provides most of the plumbing required to design, develop and maintain microservices. The tooling with Visual Studio is top-notch and it integrates cleanly with Visual Studio Team Services (VSTS) for Continuous Integration and Deployment to the cluster. If you decide to use Microsoft Cloud (Azure), services running on Service Fabric can integrated cleanly with other services on Azure such as API Management, API Gateway, Application Insights, Service Bus etc., Service Fabric clusters can be very secure. You can enable cluster security via certificates. You also have an option to deploy the Service Fabric cluster to a VNET along with other resources. ## **What exactly is a Service Fabric?** At it's core, Service Fabric is a distributed systems platform used to build hyper-scale, agile and fault-tolerant microservices on the cloud. It provides set of services for orchestrating the functioning of the applications deployed on the cluster. It abstracts complexities around provisioning, deploying, fault handling, scaling and optimizing the applications that are deployed to the cluster. It's responsible for fault handling and recovery of services, should something fail. Service Fabric plays the same role as some of the other microservice orchestration platforms such as Docker Swarm, Kubernetes, Mesosphere, Core OS etc., The following figure, provided by Microsoft, shows the features provided by Service Fabric out of the box, to all the applications deployed to the cluster managed by it. ![Service Fabric features by Microsoft.](/blog-media/f88d794e-66fda2f91f04fdf55195a4c4_64c3bb189fd3f909881de75d_fb46aacb-a336-492b-baba-89a885c5cef3_) ## **Programming Model** Service Fabric supports quite a few programming models to make it easy to develop variety of microservices. Each service can be either stateful or stateless. Stateless services are typically used for creating Web APIs or any other service that doesn't need to maintain their state on the nodes. These services will treat each request as an independent one and will assume all the information required to process the request is contained with-in it. State is maintained in external data-stores like SQL Server, CosmoDB or Redis cache etc., Stateful services on the other hand maintain their state on the same cluster. Service Fabric provides data-structures that can replicate state through all the nodes in a cluster. It provides APIs for storing, retrieving and updating data structures. Any time an update is made to a data structure, it's automatically replicated to all the nodes in the cluster and made available to other instances of the service running on other nodes in the cluster. Since the data and the services are co-located, it can significantly reduce the latency in processing the data. It also has a first class support for [**Actor**](https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-reliable-actors-introduction) programming model based on the [**Virtual Actor**](https://www.microsoft.com/en-us/research/project/orleans-virtual-actors/?from=http%3A%2F%2Fresearch.microsoft.com%2Fen-us%2Fprojects%2Forleans%2F) pattern. Service Fabric can also help with Service Discovery, Partition Resolution, Replica Selection, Fault Tolerance etc., That way, the team can exclusively focus on the business logic of the services and leave the infrastructure management to service fabric. ## **Service Fabric Advantage** Microservices developed using Service Fabric can use many of the features that come out of the box. Here are some of the features that come out of the box : - **Hyper Scale**, Application developed using Service Fabric can be independently created and deployed without any dependencies. The services can be auto-scaled based on CPU Consumption, Memory Usage etc., Service Fabric can help with maximizing resource utilization with features such as load balancing, partitions, and replications across all nodes in the cluster. - **Partitioning**, Stateful services can be partitioned across multiple nodes in a cluster. The partitions are re-balanced regularly to ensure resource availability to each service deployed on the cluster. - **Rolling Upgrades**, Services deployed on service fabric platform can be updated in stages with minimum downtime. The update domains are used to divide the nodes in the cluster into logical groups which are updated one at a time. When a service needs to be upgraded (new version deployed), Service Fabric can ensure that newer version can be rolled out one node at at time, thereby ensuring that there is no downtime. - **High Density**, Service Fabric offers native support for Microservices. Each service hosted on the Service Fabric will be logically isolated and can be managed without affecting other services. This ensures that a relatively high number of Microservices can be deployed to a node, to maximize resource utilization. This can significantly reduce the costs associated with hosting applications. - **Fault Tolerance**, Microservices deployed on Service Fabric can use the support of automatic fault tolerance. When Service Fabric detects a fault on an instance of a microservice, it can automatically spin up the new instance of the microservice on a healthy node within the cluster to ensure availability. This process is completely automated and requires no additional effort from the teams managing the clusters or developing microservices. - **Reverse Proxy**, When you provision a Service Fabric cluster, you have an option of installing Reverse Proxy on each of the nodes on the cluster. It performs the service resolution on the client's behalf and forwards the request to the correct node which contains the application. In majority of the cases, services running on the Service Fabric run only on the subset of the nodes. Since the load balancer will not know which nodes contain the requested service, the client libraries will have to wrap the requests in a retry-loop to resolve service endpoints. Using Reverse Proxy will address the issue since it runs on each node and will know exactly on what nodes is the service running on. Clients outside the cluster can reach the services running inside the cluster via Reverse Proxy without any additional configuration. ![Reserve Proxy workflow.](/blog-media/907a476c-66fda2f91f04fdf55195a4b4_64c3bb18cb98f3c4b5c5ca02_69387dd3-3127-42ee-947d-954868f1e63d_) - **API Management**, Most of the microservices don't expose endpoints directly to the external world. Typically, an API Gateway is created that acts as a liaison between the microservices and the client applications. Azure provides a way to deploy an API Management Service within the same VNET the Service Fabric is running on. It can completely eliminate a need to develop a separate service that acts as an API Gateway. It can be hooked up to a Service Fabric cluster (for backend) and can take on requests from the client applications and forward them to the individual microservices. It provides powerful features for managing endpoints, security, request/response transformation, request throttling, user management etc., ![Azure workflow.](/blog-media/4bc15b88-66fda2f91f04fdf55195a4ba_64c3bb1879d2ecca6f14389e_4e80c6fc-86d3-486c-9b85-1c884db94cc1_) - **Service Fabric Explorer**, Apart from providing awesome features to help orchestrate the functioning of your Microservices, Service Fabric also provides an awesome explorer to help you visualize the state of your applications and the nodes on which they are running. Service Fabric explorer provides a quick glance of the health of the nodes and shows your what applications are running on which nodes. It'll also show you any errors/warnings on your applications to give you an insight into what's happening with your applications running on the Service Fabric Cluster. ![Screenshot of Fabric explorer dashboard.](/blog-media/f8f9492e-66fda2f91f04fdf55195a4c0_64c3bb199a7cdfb7cf25d42d_fc60087a-749b-4d68-bb55-ac7f2bae9f4d_) It'll also provide many of the system services out of the box such as Naming Service( Service Resolution ), Image store service (Storing Deployment Packages) , Upgrade Service (Upgrading clusters), Failover manager service (Manage Failed Nodes), Cluster Manager Service (Perform Management Operations )etc., for managing your microservices. Microsoft provides terrific support for Continuous Integration/Deployment of microservices to the Service Fabric cluster via it's Visual Studio Team Services platform. The build tool can automatically detect commits to the source control such as Git and trigger a build. Once a build is created successfully, it provides the ability to deploy this build to the service fabric cluster automatically. Having CI/CD pipeline for deployment of Microservices can greatly help in continuously rolling out newer features without worrying about deployment failures. In the next article, we'll look at some of the architectural patterns that can be used while developing microservices using Service Fabric. , Preetham Reddy, Cloud Solutions Architect at TechFabric [**TechFabric**](/) specializes in building web, mobile and cloud based application using Microsoft Stack (C#, .NET Core, Xamarin, Azure, SQL Service etc.,). If you need help with taking your on-premise application to cloud or convert your monolithic applications to microservices based, we'd be glad to help you out. You can reach out to our sales team at [**contact@techfabric.com.**](mailto:contact@techfabric.com) --- ## Azure Service Fabric Gems: Introduction URL: https://www.techfabric.com/blog/azure-service-fabric-gems-introduction Date: 2024-12-11 Author: Preetham Reddy In my [**previous**](/) article, I've given a brief overview of [Azure Service Fabric](/blog/azure-service-fabric-is-amazing) and how it helps solve some of the pain points of developing applications using Microservices. Service Fabric platform continues to evolve and the Microsoft team that's working on it introduces newer features regularly. We've been using Service Fabric in production to develop microservices for a lot of our clients and have come across many gems that I'd like to showcase here. It's because of these gems, we love working with Service Fabric and continue to recommend it as a platform of our choice for all of our new clients. Here's are some of the awesome Service Fabric Gems: - Reverse Proxy - Container Service - Dependency Injection - Service Fabric Explorer - Rolling Upgrades for Services - Integration with API Management - Centralized Logging via Event Sourcing - Centralized Monitoring via Application Insights - Continuous Integration and Deployment via VSTS Stay tuned for more. We will continue to update this article as we find more gems. Stay tuned! , Preetham Reddy, Cloud Solutions Architect at Tech Fabric [**Tech Fabric**](/) specializes in building web, mobile and cloud based application using Microsoft Stack (C#, .NET Core, Xamarin, Azure, SQL Service etc.,). If you need help with taking your on-premise application to cloud or convert your monolithic applications to microservices based, we'd be glad to help you out.You can reach out to our sales team at [**contact@techfabric.com**](mailto:contact@techfabric.com) ‍ --- ## 3 Ways To Run Automated Tests On Azure DevOps URL: https://www.techfabric.com/blog/3-ways-to-run-automated-tests-on-azure-devops Date: 2024-12-11 Author: Ihor Seleznov ![Images of 2 bugs, one of them wearing a jacket labeled 'feature'.](/blog-media/214d87ad-64be67e6c3ffebc50c972f8e_7a0c0337-0fee-4de1-a609-16faf00091f8_5e6b51433dfad86b86cbed7c_) 'Bugs are everywhere', you think, trying to fill the water bank on your office's coffee machine, but the situation changes since the manager continues with 'WE HAVE A BUG IN PRODUCTION!'. So, what will you do if your team misses some bug in production? What will you do if your manager declares the Bug Hunting as a primary goal for your team in the name of the Client? What will you do, if once you come into the office and see the new poster 'WANTED Bug Bounty Program' on your team dashboard? Well, the last question seems to be off the topic, but we'll try to answer at least the other ones about quality processes and how we can save a lot of money without hiring dozens of engineers for manual support. The answer we suggest is, [**Automation**](/blog/its-time-to-move-your-company-to-the-cloud-heres-why), providing some coverage for your Project with Unit, API, UI Tests allows to ensure that important functionality doesn't break after the regular code changes. Because in this way you will save the time or/and money in one or another way, that's why we discuss how can we use pre-scripted tests on an application. ![Drawing of a team sat around the table checking if anyone have found a bug yet.](/blog-media/0af9b8e4-64be67e62b3b33b9a3da68c8_e4ac92b9-8b38-4d9e-9a69-0859d2b4df72_5e6b5143c1ef2e5300eab45b_) Furthermore, on this post, you will find a step-by-step instruction for implementing the Automation processes into your CI/CD and running the tests in your Azure DevOps Pipeline. ##### **Defining the chapters, you will find how to:** 1. **Set Up a Demo Project for our Tests;** 2. **Run the Tests for CI Pipeline** [is the first way to run automated tests in a project, and a first barrier of your QA defense which contain Unit Testing coverage]; 3. **Run any Tests for CD Pipeline** [if the second way, which contains UI or/and API Testing coverage]; 4. **Run your Tests from Test Plans on Demand** [is the third, and a final way, which gives possibility to run any test you want whenever you are]. ![Go live is fast approaching. Keep calm and carry on testing.](/blog-media/7eefc731-64be67e641d0910d36f89bf8_0ba90804-c6a4-48d5-bcbe-dbeace221e18_5e6b5143d08b1255498db9c9_) Having a little remark, I believe it's important to say, that Setup Chapter for a Demo Project is made with the idea to create some basis on which we will add our Automated Tests, so you can use your own project instead or download already created project with the following github link: Now we are ready to start, so let's the battle begin! ‍ ## **Chapter I – Setup a Demo Project for our Tests** The idea for this chapter is to create a Demo Project for the further needs, as the last warning - if you have your own project, you can continue with the Chapter II, implementing the testing coverage. Otherwise, welcome to the Chapter instructions: **1. Open your console or terminal;** **2. Create a folder for your solution:** ``` mkdir TechFabricSln ``` **3. Create folders for Main and Test Projects** ``` mkdir src mkdir test ``` **4. Create a Project in the 'src' folder & build the Project** ``` cd src dotnet new webapp -n TechFabricSln cd TechFabricSln dotnet build ``` **5. Create a Test Project in the 'test' folder & build the Project** ``` cd.. cd.. cd test dotnet new nunit -n TechFabricSln.Test cd TechFabr* dotnet build ``` **6. Create solution for your projects:** ``` dotnet new sln --name TechFabricSln ``` **7. Add your Projects to solution:** ``` dotnet sln TechFabricSln.sln add src/TechFabricSln/TechFabricSln.csproj test/TechFabricSln.Test/TechFabricSln.Test.csproj ``` **8. Add a reference for Test Project:** ``` dotnet add test/TechFabricSln.Test/TechFabricSln.Test.csproj reference src/TechFabricSln/TechFabricSln.csproj ``` At the end, you will have some structure like this: ![TechFabric testing structure.](/blog-media/9718ec91-64be67e741d0910d36f89c68_cd21d3e2-d646-4c6a-97d0-58c79608f97e_5e6b5143127853794d2c0780_) The only difference is the name of the Project, the diagram shows you the example of how it can be used. To make an analogue for your project, replace the 'TechFabric' as proposed in graph or 'TechFabricSln' as in the example with your Project's name. So now, lets add a simple function to our project, which we can cover and test with our unit-tests: **1. Add an additional class for the Main 'TechFabricSln' Project, in our example we will add 'Bought' class:** ![Screenshot of TechFabricSln project.](/blog-media/7750b20c-64be67e7b785cd3156fac0c1_1c138b1f-c883-491f-aa17-46ebd794f1cc_6017cc100cb00cf7a0d63ea7_) **2. Write some functions which you want to test. The following code defines a new bool variable which verifies who bought something in our shop.** ![Screenshot of code.](/blog-media/9b6e8cbf-64be67e6b785cd3156fac0b2_e54355f6-258c-4764-aad7-4472a18a9410_6017cc22556ad8b28febfde0_) **3. Now, let's create a quick check for declared variable. To do this, create an additional [Test] in our Test Project, and write down the code which verifies something you would like to test. In the example we verify 'Bought' class with a 'isBoughtBy' method:** ![Screenshot of code.](/blog-media/31544f14-64be67e6ebbfece9cbee1104_38f0616b-8c52-4c8f-8382-5bc8d98ef6f7_6017cc3f710fdf840b6edece_) As a final step, all that you need to setup is to create a GIT repository, and push your code. Be a team member and track yor changes in source control tool, but not on your local machine! Well, the instructions are done, so now is the time to run your Unit tests and verify if everything good or not. ![Screenshot of code.](/blog-media/94ebc943-64be67e6c3ffebc50c972fc3_bcac2725-fe87-4cc3-b43f-69165b317166_6017cc4da89c493effac726a_) If you see the green lines, you can be pretty sure, that you made the first step in protecting your project from uninvited guests. ![A house with a sign on the gate saying 'Beware of the tester' and two bugs realising they aren't welcome.](/blog-media/6e07d22d-64be67e6b7459f650c6caab6_03313321-71b1-4597-a8b7-8c420bd4ac3f_5e6b5144c1ef2e4877eab45c_) The following step is to go to the main parts of our topic, and create your first Azure DevOps Pipeline. ‍ ## **Chapter II – Create a build and run the UNIT Tests on Continuous Integration** ![Robot holding a sign that says 'I do automated testing for oil'.](/blog-media/ea1488ec-64be67e72b3b33b9a3da6935_7e6f8e46-06e7-453f-b039-3c3fb79777f0_5e6b51443f45412e1d500b26_) Performing an automated testing as a part of building pipeline is a good way of verifying unexpected problems before pushing the build on some Test or Customer environments. In this chapter you will find how to create a build procedure which will include your test runs and made a good basic fundament for the further quality assurance processes. No more talks, lets start with creating your first Build pipeline: 1. **Login in Azure DevOps;** 2. **Go to 'Pipelines' -> 'Builds';** 3. **Press on 'New pipeline':** ![Screenshot of Azure DevOps platform.](/blog-media/d559a373-64be67e7eed74ee246778e24_88d9a8af-499a-4262-95a1-0f4b2c0ca891_5e6b5144d08b1252338db9ca_) **4. Connect to your source control tool** ![Screenshot of Azure DevOps platform.](/blog-media/101a3475-64be67e7c3ffebc50c973011_b6522ce8-f925-4206-90ca-fd985fe0238c_5e6b514440b2ff10042eab38_) **5. Select your Project's repository** ![Screenshot of Azure DevOps platform.](/blog-media/c0480b29-64be67e7b7459f650c6caaf8_0f4245cc-d804-4c9a-8ff1-79a2712645e7_5e6b51443dfad854e2cbed81_) **6. Select ASP.NET Core Template:** ![Screenshot of Azure DevOps platform.](/blog-media/d3247c38-64be67e7c3ffebc50c972ff3_41dc1f97-dbfc-41e5-afcd-8854027357ae_5e6b51449bbe266496002660_) **7. Add the following command to run the Tests from Test Projectinto the yml file:** ``` - task: DotNetCoreCLI@2 inputs: command: test projects: '**/*Test/*.csproj' arguments: '--configuration $(buildConfiguration)' ``` ‍ In fact Azure DevOps will read configuration file, and execute the steps as described. ![Screenshot of code.](/blog-media/04f06750-64be67e7eed74ee246778e42_15d79d0e-9d4e-4658-9679-0440a90e71f4_5e6b514440b2ffc7c32eab39_) **8. Press 'Save and Run' button, with 'commit directly to the master branch'.** After the build procedure is done, we can see the builds results in Logs. Especially, we are interested in our 'DotNetCoreCLI' command, so let's check it. ![Screenshot of code.](/blog-media/92884713-64be67e7b7459f650c6cab0d_0eecb88f-a420-4b25-99f1-06eb55a58b9a_5e6b51443f454149c0500b31_) You can see, that in fact, nothing more than 'dotnet test' command is used in our DotNetCoreCLI task. Detailed information about our Test Run for the build can be found in 'Tests' block of the build: ![Screenshot of Azure DevOps platform.](/blog-media/546d8b59-64be67e7eed74ee246778e33_802aa129-f375-4af2-bbcb-60ca880ff6d4_5e6b51441278538ba02c0781_) Also, you can check detailed report about all your test runs in **Test Plan** -> **Runs** ![Screenshot of Azure DevOps platform.](/blog-media/d62d8637-64be67e7944bffa2ed474353_17ef8aed-b7c3-4c37-905d-200c7947711b_5e6b514440b2ffa3be2eab3a_) Now, your Build Pipeline contains at least one Unit test, which works every time you run the Build, and verifying if are there any unexpected changes or not. And from this point, we can move to the next chapter, and Create Continuous Delivery Pipeline, which includes some UI Automated Tests on Selenium. ‍ ## **Chapter III – Run UI Selenium Tests in Continuous Delivery Pipeline** As soon as the build is done and Unit, Tests are passed on the Build Workflow, it's a common thing for a quality control or development teams to create and support some functional (UI) tests in release workflow after the app is deployed to some test environment. ![Drawing of tester working and two others cheering to find the bug.](/blog-media/2cad1605-64be67e7c3ffebc50c973002_e3dfc9c3-a4ea-42ff-96f1-54d738013654_6017ccb87cad0982c80eb469_) That's why in this chapter, we will implement some UI Tests based on a Selenium framework [Selenium is an open source test framework for web applications which supports any popular browser and can be run on almost every operating system], using the UI Test framework additionally to your Unit or API tests you will be able to detect any changes also on front-end of your application. ‍ #### **Deploy your WEB App** To run Selenium Test for your own project, you need to Deploy it's in continuous deployment (CD) release pipeline and Publish it on Azure, we won't spend time on this in the post, and if you're interested in - you can find the details here: [**Publish Web App to Azure**](https://docs.microsoft.com/en-us/visualstudio/deployment/quickstart-deploy-to-azure?view=vs-2019) or write us a message, and we'll create a separate article with detailed description. In this chapter, we will run the tests against Mircrosoft.com, and you will find how to: 1. Create UI Test using Selenium Test Framework; 2. Create a Release Pipeline using your CI from the **Chapter II**; 3. Run created UI Tests on Azure DevOps CD; 4. Publish and monitor Test Results. #### **Add Selenium to the Test Project** Till this moment, we already have continuous integration (CI) build pipeline with running Unit Tests, so all we need is to add Selenium References, Driver and Test for existing Project. To do this: 1. **Open the Solution in IDE;** 2. **Go to the .Test Project -> Manage NuGet Packages;** 3. **Add additional Packages to your .Test Project:** - Selenium.WebDriver.ChromeDriver; - Selenium.Support; - Selenium.WebDriver; - Microsoft.TestPlatform.TestHost; The list of installed packages at this moment is: ![Screenshot of Azure DevOps platform.](/blog-media/154b0e67-64be67eaebbfece9cbee1142_ba919597-34c1-4570-a5b6-368500fa12da_6017ccce9db956502e9b4407_) **4. Add new Class for Selenium Tests 'SeleniumTest.cs' to the Project** **5. Add Selenium Test in SeleniumTest.cs' class.** As an example, we will add the Test which finds the Microsoft Page, and verifies which page contains the 'Windows' menu. The code is: ``` using NUnit.Framework; using OpenQA.Selenium; using OpenQA.Selenium.Chrome; using System.Threading; namespace TechFabricSln.Test { class SeleniumTest { [Test] [Category("UITests")] public void VisitMicrosoft_CheckWindowsMenu() { IWebDriver driver = new ChromeDriver(); driver.Navigate().GoToUrl("https://www.microsoft.com/"); Thread.Sleep(10000); string Windows_text = driver.FindElement(By.Id("shellmenu_1")).Text; Assert.AreEqual("Windows", Windows_text); driver.Quit(); } } } ``` ![Screenshot of code.](/blog-media/303b04a9-64be67e8297c7fd437fa526e_5a0fba55-f709-47bf-813b-b1793f70af9f_5e6b51443f45419134500b32_) **6. Add Publish chromedriver for your Test Project into .csproj file:** ``` ... ... true ``` ![Screenshot of code.](/blog-media/06fce6f4-64be67ebebbfece9cbee1168_f4d2e558-825a-4bf2-b55a-c48e20bb66ca_5e6b514412785344652c0782_) We need this option to get chromedriver into the artefacts after the project is published. **7. Run Selenium Test locally to check if it works.** ‍ #### Make Changes Into Build Pipelien for UI Tests In some cases on the road to hell automation you can face with obstacles in verifying the corrects versions of driver & packages, version for NuGet, Builder and/or .Net core. ![Drawing of person wondering why it works/doesn't work.](/blog-media/9753a91d-64be67e8c3ffebc50c973020_6e91c2da-f23c-4734-b68a-3f1b1e21329c_5e6b514403eb1ab3ec0236db_) That's why we provide some hints in the form of code pieces which you can use in your Build procedure to avoid the obstacles you faced with: ``` trigger: - master pool: vmImage: 'windows-2019' variables: buildConfiguration: 'Release' steps: - task: UseDotNet@2 inputs: packageType: 'sdk' version: '3.0.x' includePreviewVersions: true - task: NuGetToolInstaller@1 inputs: versionSpec: '5.1.0' checkLatest: true - task: NuGetCommand@2 inputs: command: 'restore' restoreSolution: '**/*Test/*.csproj' feedsToUse: 'select' noCache: true - task: DotNetCoreCLI@2 inputs: command: test projects: '**/*Test/*.csproj' arguments: '--configuration $(buildConfiguration) --filter TestCategory=UnitTest' - script: dotnet build --configuration $(buildConfiguration) displayName: 'dotnet build $(buildConfiguration)' - task: DotNetCoreCLI@2 displayName: 'dotnet build test' inputs: projects: '**/*Test/*.csproj' arguments: '--runtime win-x64' continueOnError: tru - task: DotNetCoreCLI@2 displayName: 'dotnet publish --configuration $(buildConfiguration) -- output $(Build.ArtifactStagingDirectory)' inputs: command: publish publishWebProjects: false projects: 'src/TechFabricSln/TechFabricSln.csproj' arguments: '--configuration $(BuildConfiguration) -- output $(Build.ArtifactStagingDirectory)/TechFabricSln/' zipAfterPublish: false - task: DotNetCoreCLI@2 displayName: 'dotnet publish test --configuration $(buildConfiguration) -- output $(Build.ArtifactStagingDirectory)' inputs: command: publish publishWebProjects: false projects: 'test/TechFabricSln.Test/TechFabricSln.Test.csproj' arguments: '-p:PublishChromeDriver=true --runtime win-x64 -- output $(Build.ArtifactStagingDirectory)/TechFabricSln.Test/' zipAfterPublish: false - task: PublishBuildArtifacts@1 displayName: 'publish artifacts' ``` #### ‍**Create Release Pipeline with Included Tests** As soon as the preparation is done, and the build is ended successfully, check the 'chromedriver.exe' located in artifacts of your build. It's an important thing because without the driver, you won't be able to complete written UI tests successfully. ![Screenshot of Azure DevOps platform.](/blog-media/cd815253-64be67e8eed74ee246778e51_610380f1-0afc-4920-9967-9d4ca0b8246d_6017ccf7fd2336c1061e14ce_) Then make changes into your Release Pipeline or create a new one: 1. Open the **Releases** page in the **Azure Pipelines** section 2. Click on 'New pipeline' button in Releases block ![Screenshot of Azure DevOps platform.](/blog-media/3a67cf2c-64be67e8c3ffebc50c97302f_8461f0bf-6717-4552-9555-80d0d2f10d84_6017cd0cbd4407821e604c08_) 3. In opened Templates block click to start with 'Empty job' ![Screenshot of Azure DevOps platform.](/blog-media/4fe983d7-64be67e8944bffa2ed474389_419df14b-543e-48ae-b239-e546ba93b0e4_5e6b514403eb1a7e350236dc_) 4. Name the stage and click on the Job/Task link ![Screenshot of Azure DevOps platform.](/blog-media/86de4294-64be67e8c3ffebc50c97303e_f2443fed-8064-491d-aaec-e3976c6bbe12_5e6b5144d08b12cd6f8db9cb_) 5. Add the Dotnet Core Task: ![Screenshot of Azure DevOps platform.](/blog-media/7a830030-64be67e83e84f58b06bac199_a780e27b-571e-4a7e-b575-927d104dd987_5e6b5144d08b12d3d08db9cc_) Complete the added task with the following parameters: - Task Version: 2; - Display Name: Choose any name you want, the field is just responsible for the name of procedure; - Command: There are several command we can find, but the one we need is 'custom', we'll specify the command father in 'Custom command' section; - Path to project(s): Specify the path to your Test Project's dll, in our case it's: ``` **/TechFabricSln.Test/TechFabricSln.Test/TechFabricSln.Test.dll ``` Add the arguments you want to use. To set logs you can use: ``` --logger:trx;logfilename=TEST.xml ``` ‍ To run only UI tests on this Release, add: ``` /TestCaseFilter:"TestCategory=UITests" ``` ![Screenshot of Azure DevOps platform.](/blog-media/5925af88-64be67e86307e43e04ab8ed5_7c7a98f1-3ec0-45a6-a244-1c2454d8c34c_5e6b51443f4541621d500b33_) Also, it's important to say, that in case one or more tests fail, the procedure will be stopped, to prevent this, we recommend to use 'continue on error' option. ![Screenshot of Azure DevOps platform.](/blog-media/cf52d9dd-64be67e841d0910d36f89df3_1572154d-561c-415f-823d-c2d5cd586c14_5e6b51449bbe2623ae002661_) 6. Add the 'Publish Test Results' Task ![Screenshot of Azure DevOps platform.](/blog-media/f69b150c-64be67e93e84f58b06bac31e_925271dd-003e-4e3b-a2cb-277a692af8af_5e6b5144d08b1277018db9cd_) Complete the added task with the following parameters: - Task Version: **2**; - Display Name: Choose any name you want, the field is just responsible for the name of the procedure; - Test result format: Format of test result files generated by your choice of test runner. In our case we need **VSTest** option; - Search Folder: Specify the folder path where to search for the test result files. ![Screenshot of Azure DevOps platform.](/blog-media/e661a262-64be67e93e84f58b06bac29a_4b5ed583-ab8d-4437-8c3f-c6bd27b43592_5e6b514503eb1a3df10236dd_) Now we are ready for our first release, save the **Release Pipeline** and start a new release. You can do this by queuing a new CI build, or by choosing **Create release** from the **Release** drop-down list in the release pipeline. Check results you can do in 2 ways and they are the same as in the Build Pipeline: - Visit the Test Logs - > Tests block; - Visit the Test Plan - > Runs. ‍ ## **CHAPTER IV – Run your Tests from Test Plans on Demand** ![A kid putting a bug out of the house and letting more in with the label 'Regression: when you fix one bug, you introduce several newer bugs'.](/blog-media/30b97364-64be67e9eed74ee246778e64_216cef45-5572-4948-b7cf-dd42c3135f18_5e6b514540b2ff27d72eab3c_) The idea of this chapter is to show how to use **Azure Test Plan** to create linkages between manual and automated tests. Rather than using scheduled tests, running the tests on demand can be useful if you: - Don't want to run all tests on build or release stages (e.g. if you want to save the time and run only some important tests on Release, and afterwards run whatever you want on demand); - The changes in your environment are made not by release (e.g. changes in DB); - To rerun some individual tests (e.g. the tests can fail on build/release stage because of some infrastructure issues, and you just want to rerun them); - To run the tests on a new build without it's releasing. You already have almost everything we need, so in this chapter we proceed with: - Create a Test Plan with a Manual TC to linkage with our Automated TC; - Create separate Release Pipeline for Test Project for running the Tests on Demand; ‍ **Create linkage between Manual and Automated TCses** 1. Go to the Test Plans and push on 'New Test Plan' button; 2. Create a Test Plan with any Name and Area; 3. Go to Test Plan, 'Define' block and push on 'New Test Case' button: ![Screenshot of Azure DevOps platform.](/blog-media/4572187c-64be67e93e84f58b06bac2f7_d9170b2d-ac70-4fd7-8208-20ec525d9eb0_5e6b51459bbe267f28002662_) 4. Write some TC Check, no matter which step is it. ![Screenshot of Azure DevOps platform.](/blog-media/e0fa86a6-64be67e9b7459f650c6cab9e_943d787f-e20f-4cb8-bc0e-9d78e7112cca_5e6b51459bbe26879d002663_) 5. Open your Project in IDE; 6. Connect into the Team Services/Azure; ![Screenshot of Azure DevOps platform.](/blog-media/0c333200-64be67e9b7459f650c6cabb4_2860bb76-730e-4a41-ad88-a1468ebeaa5f_5e6b514503eb1a40cb0236de_) 7. Add linkage with right click on the test -> Assosiate to Test Case, and add a TC by ID ![Screenshot of Azure DevOps platform.](/blog-media/478a1c47-64be67ea297c7fd437fa54cc_cdfca9b7-377c-4925-961f-2ee24e27ead1_5e6b51459bbe26b711002664_) ‍ #### **Create separate Release Pipeline for Test Project** For management and moderation, it's much easier to create a different stage with procedure, then add commands to the existed one. So, from this moment, we add additional stage named DEV Test, which we will use for running the tests on Demand, and not to increase the number of commands for our usual Web Project Pipeline as it's usually not the easiest one. To Add new Stage, go into All Pipelines and select the one you use for CD of the Project, and start with an Empty Template as we've done int the previous Chapter: ![Screenshot of Azure DevOps platform.](/blog-media/f97832fb-64be67e9eed74ee246778e73_d31e362c-8d73-48b8-b42b-590d804b9e6d_5e6b514540b2ff5ed32eab3f_) ![Screenshot of Azure DevOps platform.](/blog-media/465192b7-64be67e9297c7fd437fa53e3_65702607-c3b2-4500-996d-af2bb745a4f2_5e6b51453dfad8a776cbed82_) Now we need to define 3 tasks: - VSTest Platform Installer: You need the Visual Studio Test Platform to be installed on the agent computer, and if it's not - you must add the Visual Studio Test Platform Installer task to the pipeline definition; - VSTest Task: This command allows us to use vstest run command with specifying settings and parameters for our Test Run; - Publish Test Results: This task allows us to collect the data from test runs to make some statistical analysis and verify the 'weakest' areas of the App. ![Screenshot of Azure DevOps platform.](/blog-media/777621f3-64be67e9eed74ee246778e82_5431f801-1779-4f11-aa68-334415314fda_5e6b5145c1ef2e60b7eab45e_) Add all 3 described tasks with the following settings: 1. VSTest Platform Installer task settings: ![Screenshot of Azure DevOps platform.](/blog-media/ebc8cf93-64be67e9b7459f650c6cabd2_160279c5-2418-4d61-9e2b-ab4c854db0f3_5e6b5145d08b1279cb8db9ce_) 2. VSTest Task settings: ![Screenshot of Azure DevOps platform.](/blog-media/665aee55-64be67e9944bffa2ed47447c_24ac09a1-e56e-4843-ae92-16af65714033_5e6b5145c1ef2e5090eab45f_) 3. Use the analogue for settings of Publish Test Results command from your Release Pipeline, which has been described in Chapter III. The common view in your CD after the all work is done, will look like this: ![Screenshot of Azure DevOps platform.](/blog-media/ed22f7d9-64be67ead5f9b2df2afe2795_b289a159-f840-4da1-a9f8-fb18f36efc30_5e6b514503eb1a2d6b0236e0_) Now we can run the Tests from Test Plans chapter, so let's try to do it: 1. Go to Test Plans; 2. Select 'Execute' block; 3. Select a TC you want to run; 4. Choose 'Run with options' in the menu 'Run for web applications': ![Screenshot of Azure DevOps platform.](/blog-media/a581136c-64be67ea297c7fd437fa55f1_b11bc6d1-5322-443d-8270-f0e6e1532842_5e6b514540b2ff0c222eab40_) 5. Choose the build and Stage where you want to run your UI Selenium tests. Use the latest build, and choose 'Dev Tests' Stage which we just created. ![Screenshot of Azure DevOps platform.](/blog-media/ce47bfd8-64be67eab7459f650c6cac05_99eb9ade-1b1f-4849-8bd8-1d0d093b1ac4_5e6b51453f4541745c500b35_) 6. Push 'Run' button, and let's wait for result. The system will check if only automated tests are selected, validate the stage to ensure the VS Test task is present and has valid settings. After the validation it creates a test run, and then triggers the creation of a release to the selected stage. All these processes you can see as soon as you initialize the 'Run': ![Screenshot of Azure DevOps platform.](/blog-media/ce70385c-64be67ea41d0910d36f89fed_65f4ce51-4747-4b7a-839c-64d2aac2b21d_5e6b514512785346722c078a_) 7. After the Test execution is complete, visit the Runs page and check for the test Results. The Test results page lists the results for each test in the test run, and if everything goes good you will find a prize from Azure saying that there are no test failures. ![Screenshot of Azure DevOps platform.](/blog-media/22ccc784-64be67ebe5af0fbe181df4eb_09cbf3f7-c405-473d-893a-3c305c00ec25_5e6b514512785366a42c078b_) ![A trophy with the label 'Hooray! There are no test failures'.](/blog-media/7b2dddfe-64be67ea3e84f58b06bac3a6_5ef28860-cca4-42eb-998c-4d8f1d321137_5e6b51453f4541301a500b37_) #### **Summary** - Setup a WEB Project with Unit Tests; - Create a CI in Azure DevOps; - Add Selenium Tests on existing Projects; - Run all the tests locally, in your own IDE. - Run the Tests in 3 Ways on Aure DevOps: - On each Build (for Unit Tests); - On each Release (for UI or API tests); - Create linkages between your manual and automated tests and run them whenever you want. - Check for Test run results. QA or Developer Teams usually cover Testing and Staged Servers with Autotests, to check for new features, complete regression testing, and to test builds and updates to ensure quality under a production-like environment. The advantage is once the automated tests created, they can easily be provided in several of your Test Environments. It's a good practice for bigger projects so save the money and time for verifying software in this way before the users find something. ![Meme: Funny image with the writing 'I noticed you uploaded your code to production without testing. I too like to live dangerously'.](/blog-media/f477ab07-64be67ebb7459f650c6cacc9_2a79c2ca-4ff0-4552-a751-b7b585f63e69_5e6b51453f45415d71500b38_) And returning to the start, using the automation properly, and covering your code with checks, you will incredibly decrease the number of heart attacks you can have because the customers found the bug in production. Before we start, let's imagine the situation where you are talking with your colleagues after a good weekend in your office kitchen and the manager runs into the room shouting 'BUG, WE HAVE A BUG!". --- ## From Spreadsheet to System: How We Automated Our Internal Processes with Microsoft Dynamics URL: https://www.techfabric.com/blog/from-spreadsheet-to-system-how-we-automated-our-internal-processes-with-microsoft-dynamics Date: 2024-11-20 Author: TechFabric When we started TechFabric back in 2016 we had a team of eight and no reasonable need for automation or extensive internal documentation. We used capable Excel Spreadsheets to keep track of everything from timesheets to task management, iterating on process as we went. When our team grew to 20x that, we recognized that our spreadsheets were becoming arduous and thus costing TechFabric time (and time is money).It was time to "eat our own dog food," as some say, and connect our data, processes, and teams to transform our workflows and efficiency just like we do for all our clients. Of course, not everyone is going straight from sheets to Dynamics. In fact, there are often many steps between. As we frequently acknowledge with clients, there's no one-size-fits-all for organizational approaches (just like there's no one-size-fits-all for where we start from). **Defining the Problem** Our Operations team, lead by Meghana Lakkadi, was tasked with creating an operational solution to more accurately predict team capacity and resource allocations for TechFabric. We recognized that we had a lot of organizational solutions to choose from, and when you have stables of talented devs who can build anything, it is easy to look at building a custom system internally. Some of the gaps we were beginning to recognize in our operations included: - Multiple sources of truth (data) across multiple systems and spreadsheets - Separate views of projects for different departments and teams, making it difficult for project managers to fully understand team availability for scope - Inconsistent reporting- making it difficult to make accurate or dependable financial projects - Gaps in team capacity and availability ![](/blog-media/4cc9a31f-64b1927d97efeeec3f6b747e_1c0071a8-65f5-4143-8766-f88e0a0e35ee_techfabric-microsoft-dyna) **Defining Success** Here were some of the items on our roadmap wishlist when taking this project on for our team (sound familiar?): - One consolidated view of the project lifecycle: from sales, to project execution, and on - Simply track time and expenses for the company - Clear understanding of team capacity and resource allocation - Smooth project assignment process - Simplified cross-team collaboration - Dependable and accurate reporting - Increased efficiency and profitability **Choosing the Right Solution** Our Operations cohort tasked with choosing the best possible solution for Tech Fabric's needs surveyed a multitude of options ranging from Zoho to Acumatica, to even scoping out what a completely customized solution would look like to build out internally. Ultimately, we chose to go with [**Microsoft Dynamics**](https://dynamics.microsoft.com/en-us/). Here's why: - Complete Operational Visibility - Capability to custom-build project setup - Ability to completely streamline all departments- no black holes - Easily generate dependable reports - Fully integrates with our existing Microsoft ecosystem and SSO - Works with 3rd party collaboration tools we were already using: Teamwork & 7Pace ![](/blog-media/7867f8d7-64b1927d89d0038863d08711_0801f8a0-6e12-4a3e-a6c2-0f6e257d58f2_techfabric-microsoft-dyna) **Buy vs. Build** You might be wondering why our team would opt to buy a technical solution instead of building a fully-customized solution from scratch. Just because we *can* build anything, doesn't mean we *should* build everything. The long and short of it is this: After analyzing our team's needs, defining success, and scoping out exactly what would be required to see impact, our Operations team determined that Microsoft Dynamics could address those concerns (and much more). Building something out internally would have required us to scale-up our own organization to accommodate the project and the needs of our clients, and the time to launch our own technical solution would have greatly bypassed the time of launching Dynamics. Why waste a year's worth of bandwidth and money to build it from scratch? **Choosing the Right Path** ![](/blog-media/33746c47-64b1927d1d3725282ae84857_313d79a8-6789-4782-9637-6f1b6b287471_techfabric-microsoft-dyna) The buy vs build argument is ever-present in the technology industry. We consult deeply with our clients to help determine if existing, "off-the-shelf" options will meet the needs, goals and requirements or do we have to go custom to achieve the right fit. - **Compatibility** - Will existing systems work with our existing ecosystem (including partners) - **Scalability** - Will an existing option allow us to grow? At what point will we need to replatform again - **Mission-Critical Features** - Do any of the options on the market meet all (or the overwhelming majority) of the identified needs/requirements - **Nice-to-Have Features** - What other features exist to support the business needs and/or usability (e.g. includes a mobile app) - **Customization** - How readily can we customize areas to the business and what documentation is available - **Performance** - Will ready-made solutions provide the speed, uptime and overall performance to meet our needs - **Support** - What is the level of support for implementation and ongoing with off-the-shelf solutions - **Compliance** - Do existing options have the security and compliance the business requires - **Time-to-Market** - Will building custom be faster and more effective than customizing someone else's code? What is the opportunity cost of slowing time-to-market? - **Cost/Value** - Does this work for the budgets and how does it compare to custom build with no licensing? Are the ready-made features worth paying more for to move faster? Ultimately, before selecting the best technical solution, we always recommend mapping out what problems you are trying to solve- and determining whether that solution already exists or if it is something that makes the most sense to build in-house. **Dogfooding with Dynamics** ![](/blog-media/902124c4-64b1927d2a2462f36a8945e9_8dbb1a94-37d0-4091-870b-a598e0ab1e53_techfabric-microsoft-dyna) In our case we used this criteria to identify Microsoft Dynamics Project Operations as the right fit for our organization. The best part about our experience moving our organization to Dynamics was it was a unique opportunity for dogfooding, if you will. We were able to go through the same process- from beginning to end- that so many of our clients are going through. We are also experiencing firsthand the intrinsic value that Dynamics has brought to our organization. If your organization is interested in learning more about the capabilities of Microsoft Dynamics, and whether it is the right move for you, [**let's chat**](/contact)! ‍ --- ## AI at Scale: Managing Cloud Multi-Tenant AI Infrastructure with Temporal URL: https://www.techfabric.com/blog/ai-at-scale-managing-cloud-multi-tenant-ai-infrastructure-with-temporal Date: 2024-11-20 Author: Sergey Ustimenko Every organization is searching for ways to **improve their applications** by utilizing large language processing models, or **LLMs**. If configured correctly and connected to OCR or image/audio generation tools, LLMs can solve very complex problems and further improve our interaction with software systems. However, leveraging those features has **costs**, and they can **climb quickly**. When building integrated applications like these, there are a **lot of moving pieces** to account for, including **different providers** and systems with **different cost models**. For example, when using RAG, we need to consider storage, document analysis, vector store usage, and costs. We also need to keep track of tokens used as that number can **grow exponentially** when complex multi-step RAG agents are in play. Those problems multiply if we talk about **multi-tenant solutions** with complex deployment models and flexible infrastructure. How do we retain the ability to **replace any service** or model with an analog from another vendor? At TechFabric, **we tried different approaches to infrastructure management**, found one that we feel strongly about and that best suits our needs. Let's review this and **share our experience and findings**. First, let's outline what**infrastructure components**a typical application needs: 1. Application hosting 2. Blob Storage 3. Vector store 4. OpenAI service 5. Document Intelligence 6. Database 7. Observability platform (Kibana/ApplicationInsights/Langfuse) In a **multi-tenant environment**, we can't simply create a new set of resources for every tenant. There are **variables to consider** and review with the business. Some organizations would prefer **lower costs** over a **secure and isolated environment**. Some would prefer to **pay more** to ensure isolation so **none of their** **resources are shared** with other tenants. We strive to cover the majority of scenarios and edge cases to make all our applications available to the widest possible audience. On this mission, we planned, created, and tested the following hybrid approach to host multi-tenant applications. Here's **what we found**, after multiple deployments. ## Hybrid Infrastructure To make the infrastructure as **cost-effective as possible**, we decided to have a multi-model, multi-cloud infrastructure management solution. At the core of a system, we have so-called "Platform" module - a **Kubernetes cluster that runs our main application** and controls all other subsystems. Then, we have **multiple "Infrastructure Tiers"** based on the client's needs: ### Shared Resources Tier This tier is dedicated to users who **prefer lower costs** and are okay with the fact that their information is **hosted on the** **same resources** as other clients. Of course, data is still separated on the application level: all clients have their unique keys, and data is stored in separate folders (in blob storage) or in separate indexes (Azure AI Search). A **shared tier does not mean** that the application has **only one vector store** or a database. Every cloud has quotas or limitations for every instance of a particular service. **For example**, one Azure AI Search instance has a certain number of indexes in its higher tier and it's not possible to go above that. That means that in shared tier, **every resource type should be monitored** for reaching allowed limits, and, when we reach, let's say, 70% of the limit, we have to **deploy a new resource**, record it in the database and make sure all new registrations will use this new resource. This technique is called **partitioning,** but we try to **avoid this because** it's easy to confuse with service-level partitioning on Azure search/databases, etc. In addition to having **multiple copies** of shared resources, we also need to **monitor existing resource usage** - most of the space may be occupied by tenants who are not active anymore and we want to **move all data** to less-performant resources. So, from**infrastructure-related tasks, we can identify two:** - Deploying new resources automatically based on metrics - Moving data between multiple instances or resources. ## Tenant-Specific Resources Tier The tenant-specific tier is for tenants that **require high-security standards** and need their data to live in a **separate environment**. This means that every time we have a new tenant, we need to deploy a full set of required services: from **blob storage** to **observability tools**. More than that, we need to allow customers to move from a shared hosting model to an **isolated one** without losing their data. If the **shared resources deployment case** is just about deploying a **new instance** of a resource and **adding it to the database** so that it can be used by the application, with tenant-specific resources the deployment model is **drastically more complex**. We need to deploy the **whole infrastructure** and that means it **can't be done** **just by executing a bicep** or cloud formation template. Here, we need the resources and a **Lang Fuse** and **Kibana deployed to** **Kubernetes** cluster via **Helm**, **k8s ingress** configured, and deployment pipelines properly **configured with tenant-specific access keys** and **connection strings**. The process has multiple steps, some of them taking more than an hour to complete and is very error-prone when running from developer's laptop. Our previously defined infrastructure tasks list could be adjusted: - **Multi-step deployments where steps can be: bicep/cloudformation templates deployments, use of AZ or AWS Cli tools, running bash scripts, applying SQL migrations, etc.** **‍** - **Data between multiple instances stays here.** ## Putting it all together Based on the tasks mentioned above, the system also needs a way to **constantly monitor itself** and **react to different events** such as resources usage or new tasks coming from other subsystems. It also needs a way to run those tasks in a **reliable manner**, retrying if something fails. **But "reliability", when it comes to infrastructure deployments, does not simply mean that the system should retry failed steps if something goes wrong.** It is **not a regular scenario** with http calls where one would simply retry failed requests until it eventually succeeds (with some back-off policy, if defined). With infrastructure we **can't avoid human interactions** (especially when deploying to client's controlled environment) - many **things could break** the deployment process: we may reach azure subscription quota on VM CPUs, it may appear that some of LLMs are not available in specific region anymore, scripts may **deploy Kubernetes cluster**successfully, but **break when configuring the ingress controller** because client's infrastructure does not allow creating DNS records and has special requirements for certificate management. So, it is about making sure **there is a retry mechanism** and about ensuring at any point of time when the error happens, it is **easy for a human to adjust** things, change parameters, and re-run failed steps from the point where it left off. **Temporal framework has these capabilities,** and then some. It **stores the whole history** of all actions performed, it is possible to re-run a workflow, AND Temporal provides a **slick dashboard** where developers can see all workflows, their parameters, re-run them from desired steps if needed. ![Infrastructure Architecture Diagram Displaying Temporal_Orchestration Changes In Different_ zure Subscriptions](/blog-media/b8106966-673e1eb034883214ddad9984_techfabric-blog-temporal-infrastructure.jpeg) _Infrastructure Diagram_ We found that **writing infrastructure-related management code** to be much **easier**with temporal: we don't need to deal with huge powershell or bash scripts anymore, we just **write temporal actions in c#** and use powershell/bash only to execute certain task (be it `**az deployment group create**... ` or `**pg_dump**...`. Temporal **actions can deploy resources**, query azure for certain parameters (like getting managed identity id and passing it as a parameter to next action). And **all those commands** and their output is stored in a nice step-by-step event history on Temporal dashboard! Because **temporal workers run on kubernetes pods** hosted in our environment, we have **full control on security**, pods running Temporal workers have special Managed Identity assigned to them and those identities have **special permissions** on target subscriptions. To put it simply, Temporal makes **managing infrastructure for multi-tenant platforms easier** than ever before. If you are mired in constantly rolling out **changes to vast number of tenants**and making sure all tenants have stable and functional environment, then **try Temporal** and see how it works for you. We may sound **biased to Temporal**, because we are! We've **tried many other durable/resiliency frameworks**, and in our world, there is nothing quite like Temporal's ease-of-use, especially in complex, multi-tenant environments where ongoing management and observability is key to **sustained success**. **Want to learn more?** Check out our [**Airline Booking Demo**](/blog/temporal-airlines-booking-demo-application) and see Temporal in action! --- ## Supply Chain: Building it Stronger, Smarter and Faster using SmartCert URL: https://www.techfabric.com/blog/supply-chain-building-it-stronger-smarter-and-faster-using-smartcert Date: 2024-11-07 Author: Leo Oliemans ## **Discovery Phase of SmartCert®** *SmartCert*® is one of those products you don't seem to come across a lot. The idea of *SmartCert*® is an easy solution for a critical, long-standing problem in the supply chain, but there is always one question that boggles the mind: Why hasn't anyone done it yet? When we investigated, we identified Deloitte and Honeywell have invested in similar technology but were unable to find a business offering this technology. During the initial discovery phase, we broke down *SmartCert*® by several methods. I like the 5W2H's method: What, Why, Where, When, Who, How, How much, this process has been useful during my time in Quality. Next question: What are the ingredients for a successful Minimum Viable Product? **Standard practice at TechFabric:** · Learn: Meet with experts, capture all requirements and refine priorities. · Create: Create Necessary Documentation, Flows & Diagrams · Build: Build the User Story Backlog for this iteration of the product · Plan: Plan high-level dev approach and/or estimates while Prioritizing Features ![The 4 steps of the standard practice at TechFabric: learn, create, build and plan.](/blog-media/d169a6a1-64c3ba229c6a1643c4abe33c_b73dec84-7611-494f-ae23-533f6977cb1f_6062f094a02a83fae9d2994f_) *It was clear that SmartCert*® needed to be simplistic in use, so any business implement it without replacing their current processes.*SmartCert*® needs to have Ease of Use, Speed, Flexibility & Accessibility. ## **The Minimum Viable Product v1.0:** After countless hours of brainstorming and discussions with our customer, Aramid Technologies, TechFabric was ready to start building the *SmartCert*®v1.0. ![Workflow to build SmartCert®v1.0.](/blog-media/03bc8811-64c3ba24b4634fe058ac966c_b972c1d6-5b7b-4f63-8104-90c25a304964_6062f0948f3d3c814b529f5b_) **Making lasagna for the family is easy but making lasagna for 100 people can get complex very quickly. SmartCert® Foundations need to be strong enough to serve the many.** Lydon Lattie, Founder of Aramid Technology ## **The value proposition of SmartCert®** ![The 7 steps of SmartCert® value proposition.](/blog-media/74ca3ca7-64c3ba23ccecc822d03e2f1f_6224929b-d8d4-49ea-8812-67a090e037a7_6062f096027efe2f9f1dd11d_) **Binding of Documents to Shipments and Parts:** A product such as *SmartCert*® helps the digitalization of the supply chain, creating an opportunity to attach critical documents directly to parts as they move throughout the supply chain. *SmartCert*® allows users to bind documents on a systemic level: COC's, ISO's, AIC's, and all other documents you can think of. *SmartCert*® is meant to build a Smarter, Faster, and Stronger Supply Chain by utilizing present technology, including Quick Response (QR) codes. Attaching the QR code to the shipment allows businesses to change and update documents even when shipped weeks/months/years ago. *SmartCert*® helps streamlining the transfer of documents & certifications **Control and Safety to Critical part Information:** Part of the Supply Chain is Logistics, and one of the biggest challenges is damaged or missing documentation. Most likely the Quality department is asking you regularly for 8D reports with corrective actions and preventive actions from their customer. The issue of what happened and how can it be prevented for future shipments can be very hard to explain. This is complicated by businesses using external companies for transportation, making it difficult to investigate. In reality, we are talking about a Supply Chain with many involved businesses and internal processes. *SmartCert*® provides preventative action and eliminates the scenario of damaged & missing documents. ![Screenshot of SmartCert® app.](/blog-media/7ccd1ebe-64c3ba23808c20354a522691_5baf64bf-7587-4edb-929d-24c073c22061_6062f095b39fd570de17e04d_) **Reducing Missing Documents & Scrap:** Normally goods with missing documentation either end up in the quarantine zone until proper documentation has been provided, are RMA'ed, or scrapped on site. Regardless of the role as customer or supplier, both companies have more value if parts can be used in production or shipped to their end customer. **Industry Stats:** - Sale of Avg. US distributor: $14M - $100M - 0.6% - 1.0% of inventory is scrapped. - A distributor with $30M in gross sales could lead up to $300K annually resulting in $1.5M over five years. This scenario represents the costs associated with scrapped parts. The indirect cost such as a line down events which we can see industries such as Automotive industry can push costs sky- high due to missing or damaged documentation. Finally, there is the risk of losing a customer due to reputation damage. *SmartCert®*reduces missing documents and eliminates the risk of damaged documents, quarantined parts and lost revenue. As a whole, businesses want to keep their inventory as clean as possible, avoid downtime and keep products moving as quickly as possible through the supply chain. At Techfabric, we see *SmartCert®* as a competitive advantage, unifying all businesses and parts of the supply chain. **Process Speed & Flexibility *in the Supply Chain:*** One of your important shipments for a VIP customer left the warehouse and at the last minute, additional COC's were required by the customer, but weren't able to be attached prior to leaving the warehouse. Normally you would contact the customer and submit the document via email to a customer service representative or your direct contact, asking your customer to do your work. *SmartCert*® would solve the problem within a split second by allowing you to login to your *SmartCert*® environment, find the correct shipment, and upload or change the documents required. Speed & Flexibility. ***SmartCert*®Accessibility:** *As a SmartCert*® customer, it is very easy for any users to generate a *SmartCert*®, or Scan a *SmartCert*® in the Warehouse, allowing for easy access to all documents added during the Supply Chain of that particular shipment. As paid subscribers, the Master User of your Organizations *SmartCert*® will also be able to manage and monitor the team's activity. Guest users are allowed to access the platform and scan *SmartCert*® but cannot add or delete any documents. **Summarizing the Benefits:** - Binding of Documentation to Shipments and Parts. - Streamlines the transfer of industry-required certifications. - Adds Control and Safety to Critical part information - Reduces missing Documents & Scrap. - Adds process Speed & Flexibility in the Supply Chain. - Allows users to instantly scan warehouse parts for information in real-time. ## **Future Technologies and Vision TechFabric** Leaders in the supply chain industry no longer consider new technologies as merely a necessary "means to an end." These systems are now considered vital because they are continually evolving, growing increasingly smarter and faster, and expanding their capabilities at unprecedented rates. Supply chain management strategies come and go, but the 2021 Tech trends are shaping up to be the most revolutionary in several years as businesses prepare to reorganize for a post-coronavirus world. Forward-thinking organizations recognize the importance of digitalization exploitation as they consider new transitions to more innovative technologies, potential disruptions to conventional supply chain models, and other previously unforeseen challenges. To remain competitive in the fast-paced world of business and commerce, today's organizations must adapt. Follow: [SmartCert® by Aramid](https://www.linkedin.com/company/aramid/)‍ Follow: [**Tech Fabric**](https://www.linkedin.com/company/tech-fabric/) --- ## Off the Shelf vs. Custom Software: Selecting the Optimal CRM for your Business URL: https://www.techfabric.com/blog/off-the-shelf-vs-custom-software-selecting-the-optimal-crm-for-your-business Date: 2024-11-07 Author: TechFabric It's fairly obvious that customer relationship management is an essential focus of any successful business, but the details get much more complicated. Maintaining the most favorable [**business-customer relationship**](https://www.cio.com/article/2439505/customer-relationship-management-crm-definition-and-solutions.html) contributes directly to the bottom-line by nurturing a strong and loyal customer base. ![Pie chart showing 20-40% customers would spend more with a company when the company engages via a CRM.](/blog-media/bb7f6db4-64c3aa4771507f032307fb77_23dbf0ac-c4b9-468f-8f67-b2654b25c124_6014286b3932b71360d21b97_) _(Source: crm.walkme.com)_ Modern technology delivers tools to automate [**customer relationship management**](https://en.wikipedia.org/wiki/Customer_relationship_management) (CRM). It's an ever-evolving software ecosystem, currently including management of sales, marketing, accounts, reporting, and many more data-driven operations. Contenders consist of popular names you may be familiar with, such as Salesforce, HubSpot, Microsoft Dynamics 365, Oracle, SAP, NetSuite, and SugarCRM. However, dozens of other viable contenders make selecting the optimal CRM tricky at best. What are the General Steps in CRM Selection for Business? When it comes to selecting the best CRM for your business requirements, special care is required to ensure the system meets all the needs of your business. From suitability to implementation, integration, functionality, usability, scalability, performance, security, and more, you have to weigh the pros/cons of each system to select the best software for your specific business use cases. We break this down into eight general steps. ### **1) Research and Suitability Analysis** The first and most important step to selecting the right CRM is assessing the software's suitability for your business. Likewise, it's imperative to start the process with clearly defined business requirements. Consider the number of users required, records in your database, technical specifications, user workflows, and core business needs. A new startup's needs are vastly different from a mid-market or enterprise organization. Requirements for non-profits are different from retail e-commerce, and so on. Classifications can get somewhat granular, but a CRM falls into two general core types on the most basic level: Operational / Collaborative CRM: Focused on front-office communication with customers, automating the sales, marketing, service, and customer relationship workflow. Data includes customer records, all types, from sales data to specific customer touchpoints throughout the digital ecosystem. Once the database integrates with all the touchpoints, the frontend objective becomes enhancing customer interaction, loyalty, and other relevant KPI's, in addition to lowering customer service costs. Analytical / Strategic CRM: In contrast, more back-office oriented, focused upon analyzing and enriching customer data, all types, both online and offline sources. Then, from a data warehouse, analytical processing (potentially including AI and machine learning) finally yields actionable insights from the corresponding data. TechFabric specializes in the analytical aspect of CRM. It also implements end-to-end custom CRM solutions to use available data and meet the most niche needs of mid-market and enterprise organizations. CRM type is not mutually exclusive, many CRM's have both operational and analytical capabilities, yet each has its strength and weakness. It's critical to start the process with defined business requirements derived from surveys and other feedback from the respective stakeholders in the organization. ### **2) Understand the implementation** Implementation goes beyond the introduction of new software to include upgrades in the future. For starters, an implementation should be well-documented and well-suited for the technical expertise within your business ecosystem. If your entire organization runs on Microsoft software, for example, selecting a system developed by SAP or Salesforce, might not make the most sense. ‍ ![Two pie charts.](/blog-media/526103c0-64c3aa47f59e8900f24a84fc_f26c772f-30f1-4d82-90d1-13faa52316ca_6014286bf73933c33ca83038_) _(Source: activecampaign.com)_ For you to execute all your business operations effectively, you need a CRM that can integrate cleanly with several applications and other critical business systems. Instead of interacting with multiple third-party apps outside the CRM, you can also develop custom software such as TechFabric's custom [**Approve Engine CRM**](/case-studies/auto-approve) which integrates all the apps, websites, and tools required in a single application. ### **3) Emphasize on scalability** The right CRM for you should be scalable enough to support the growth of your business over time. As your business grows and evolves, your CRM should follow suit without having big issues with more significant client structures. If you aspire to grow your business globally, you need a highly [**flexible CRM**](https://blog.caspio.com/4-reasons-why-you-should-custom-build-your-crm-system-2/) that can scale across markets and different currencies. ### **4) Understand customization capability** Some business needs mandate a customizable CRM system like **TechFabric's CRM portal**, powered by Microsoft Azure. It features AI, specifically Natural Language Processing (NLP), catering to the specific niche needs of a rapidly growing mid-market organization. The basic 'out-of-the-box' functionalities offered by CRMs like Salesforce, Hubspot, SAP, and Oracle are a great match for most use cases, however custom CRM development may be the optimal route organizations with unique workflows or other needs. ### **5) Don't forget mobile-friendly** In the digital age, [**mobile-friendly CRM**](https://www.salesforce.com/eu/learning-centre/crm/mobile-crm/) is not a recommendation; it's a must-have. If your sales team works in the field, they need to access information from mobile devices. Salesforce and other popular systems feature native mobile applications, but as with all enhanced features, they could require additional licensing fees. Custom mobile applications represent a higher upfront cost, typically the case with custom software development vs. licensing software. ![Stats about the benefits of using a CRM.](/blog-media/858f29ec-64c3aa4729180d57f8575c6d_3b6f8009-cb4d-4c2e-8de2-b21c33fdbf5d_6014286db4074366e380afcf_) ### **6) Usability and speed** CRM usability determines the [**ease of use**](https://www.softwareadvice.com/resources/crm-usability/), user-friendliness, efficiency, intuitive features, and other vital ingredients for success. It would help if you also had a CRM with a gentle learning curve that makes it easy to onboard recruits to the team quickly. Demo the systems you consider and use usability as a critical factor in your consideration matrix. ### **7) Affordability and value** CRM pricing matters regardless of the size of your business. If you own a small business, you need a well-priced all-in-one CRM system that meets most all your needs. Dive deeper for clarity of the [**pricing model**](https://www.businessnewsdaily.com/7838-choosing-crm-software.html), monthly fees, and additional charges to avoid the surprise of hidden costs. ### **8) Research the quality of support** The fact that breakdowns are inevitable makes it critical to have a highly responsive tech team in place for recovery and to cut downtime. Make sure to examine the quality of support, historical uptime, ticketing process, and other factors that ultimately influence your troubleshooting and disaster recovery plan. At [**TechFabric**](/), we create digital products that integrate the most popular CRM(s) and build out saleable custom CRM(s) that meet specific niche business requirements. In the digital age, you may need much more than out-of-the-box functionalities to compete and thrive. You can rely on our reliable [**custom software development**](/) team for CRM development. Our analytical capabilities include machine learning and AI by certified developers. Reach out to the TechFabric [**sales team**](/contact) to learn more about getting the most out of your CRM initiative. --- ## How We Created A Multi-Tenant, Multi-Cloud, & Multi-Model AI Platform with Temporal, Fiber Copilot URL: https://www.techfabric.com/blog/how-we-designed-a-multi-tenant-multi-cloud-and-multi-model-ai-platform----fiber-copilot Date: 2024-11-07 Author: Preetham Reddy TechFabric is a digital transformation company that has been helping enterprises embrace the latest advancements in technology to improve their operational efficiencies, reduce costs, and deliver value to their internal employees or customers. Our customers rely on our guidance regarding the technology landscape and how they can use newer technological advancements to be more effective, disruptive, and competitive. Whether it's implementing better ways of managing data, providing better solutions to integrate with their partners, or building pleasant UX for their systems, we've always strived to be their trusted adviser and bring them value through the introduction of the right architecture, tools, frameworks, or solutions to address their needs and help them stay ahead of their competition.‍ With the recent advancements in the Generative AI space, we've had many conversations with our clients on how they can take advantage of Large Language Models and introduce Generative AI experiences in their applications that can democratize access to data, simplify their current workflows, and help their employees be more productive. Since every client is different and their needs are different, we often had to build custom solutions tailored to their needs and found ourselves doing the same thing repeatedly. Since there are many components and moving pieces in a Generative AI system, there's no way to build a one-size-fits-all system. We choose the components based on cost, speed, and features that are appropriate for our clients. A typical Generative AI system will have these building blocks and depending on the company and their use case, we often have to choose different components, spreading across native cloud provider components to third-party and custom-built components.‍ 1. **Vector Database**(Azure AI Search, Quadrant, Cloudflare Vector Store, Elastic Search, Vertex AI Search, etc) 2. **Document Parsing Engine** (Azure Document Intelligence, Llama Parse etc.) 3. **AI Model Serving Platform (**Azure OpenAI, AWS Bedrock etc.) 4. **Knowledge Graphs** 5. **Intelligent Data Platform**(Databricks, Snowflake, Azure Fabric, etc.) 6. **File Storage** (Azure Blobs, AWS S3) 7. **Retrieval Augmented Generation (RAG) techniques** 8. **Workflow Orchestration for continuous training (**[**Temporal**](https://temporal.io/)**)** 9. **Identity Access Management**(Azure Entra ID, Ping, Okta etc.) and many more… As you can see, there are a few core components that are needed for every meaningful Generative AI platform. But not every enterprise uses the same cloud platform, has the same set of requirements, or even tries to solve the same problem. Some of them have tons of documents in unstructured format (PDFs, spreadsheets, word docs, handwritten notes) accumulated over decades. Some of them have intelligent data platforms with advanced capabilities. Some of them have semi-structured data and traditional relational databases. Each scenario requires using a different kind of parsing engine that's more suited for our customer's needs, a different vector database, a different foundational AI model that's fine-tuned for their use case, etc. For this reason, we often find ourselves trying to build a custom platform for each of our clients with manual setup and integration. This approach isn't future-proof, isn't cost-effective for our customers, and can quickly go out of date, considering the pace at which innovation is happening in this space. There's got to be a better way to rapidly provision infrastructure and swap out components as newer, better components arrive. We also want to have a platform that can host multiple tenants and provide an amazing user experience (UX) to ingest, process, train, and deploy AI chatbots and copilots on the fly. ‍ ## **Introducing The Fiber Copilot Platform** ![Fiber.inc AI Copilot Platform](/blog-media/73e393ce-6706a721d0ab8cdef1948cda_66b54781efba504506d13de9_6629637759f4239cabb34cdd_Fiber-CoPilo) _Fiber.inc AI Copilot Platform_ That's why we decided to build [Fiber](https://fiber.inc/), a new multi-tenant, multi-cloud, and multi-model AIOps platform, that can be used to quickly create and deploy AI chatbots and copilots trained on enterprise data. Users will have full flexibility to choose various options for components in the system and provision underlying infrastructure at the click of a button, reducing months' worth of work to a few hours. For example, they'll have the option to choose Elastic Search for vector search, Azure Document Intelligence for parsing engine, and Azure OpenAI for model serving and deploy it to Azure. Or they could choose Qdrant for vector search, LlamaParse for parsing engine, and AWS Bedrock for model serving and deploy it to AWS. They'll have many more options to choose from, from native cloud provider options to third-party and open-source options. It's their choice. What platform they want to deploy to and what components best fit their use case is for up to them to choose. Fiber provides them total control over their data privacy and secure access to cloud infrastructure. Fiber will enable the companies to quickly create chatbots and copilots trained on their proprietary data and deploy it across their Enterprise through granularly controlled permissions and security policies.‍ ‍ ## **Multi-Tenant Architecture** Here's the high-level architecture: ![Multi-Tenant Architecture](/blog-media/96c1cc22-6706a721d0ab8cdef1948cd7_66b54781efba504506d13df1_662976d212b6aa0bb9706415_Multi-Tenant) _**Multi-Tenant Architecture**_ We've decided to build a multi-tenant system that can be easily provisioned while fully preserving our customers' data privacy and control over their data. Each tenant will have all their resources provisioned in their cloud subscription. All their data, vector stores, AI models and parsing engines will be provisioned in their cloud platform of choice. Fiber applications and APIs will be granted granular access to resources based on the permissions granted in the Identity and Access Management System authenticated with OAuth 2.0. The entire infrastructure provisioning process is automated and orchestrated with Temporal workflows and its durable execution capabilities. ![](/blog-media/f1f1da0a-6706a721d0ab8cdef1948cd4_66b54781efba504506d13df4_662987e0dd18dfff90a88f3e_Authenticati) _Authentication Architecture_ ## **Tying it all together with Temporal** Since we have so many dependencies on external cloud providers and their APIs, we needed to have a durable and deterministic execution of processes in our system. [Temporal](https://temporal.io/) durable execution framework provides a guarantee that no matter what happens, process crashes, network or storage outages, its orchestrator helps the failed processes recover by rehydrating them in a different server and continuing the flow of execution. The [Temporal](https://temporal.io/) framework is the backbone for all our underlying workflows. We execute workflows while onboarding new clients, and users, provisioning infrastructure, training AI models, creating vector embeddings etc., The beauty of the Temporal framework is that it works with our pre-existing choices for runtime, test framework, CI/CD environments, and any web framework. We don't need to choose a specific language or server technology to make use of Temporal workflows. We have workloads written in Python, Typescript, C#, .NET Core, Bicep DSL, Terraform, etc., and Temporal just works with every one of those technologies. There's no other workflow orchestration engine that's as flexible as Temporal and supports all the major programming languages. It's truly a joy to work with it and we couldn't be more excited. This flexible architecture of Fiber allows us to quickly provision a Generative AI platform for our clients so they can jump right into creating AI chatbots but is also future-proof. If newer models arrive, or there's a better vector search database, or a newer parsing engine works better, it's only a matter of a few clicks to swap these components, and Temporal workflow will do the rest to retrain the AI model and populate the vector store! Check out [Fiber Copilot](https://fiber.inc/) and [reach out](/contact) if you'd like to try it out! ‍ , [**Preetham Reddy**](/blog-authors/preetham-reddy) Founder, [TechFabric](/) and [Fiber](https://fiber.inc/) --- ## Durable RAG with Temporal and Chainlit URL: https://www.techfabric.com/blog/durable-rag-with-temporal-and-chainlit Date: 2024-11-07 Author: Sergey Ustimenko Large Language Models (LLMs) are becoming increasingly common in Enterprises to surface information from large corpus of corporate data, and so are the expectations placed on them. It's common knowledge that LLMs can hallucinate when the context is too broad, or they're asked questions outside of their knowledgebase. To solve this problem, advanced Retrieval Augmented Generation (RAG) techniques can be used to ensure their responses are grounded in the data (context) and they don't hallucinate. The foundation of any RAG system is its data. Enterprises can have data in various shapes and forms with diverse file types such as PDFs, markdown, docx, csv, Json etc., The RAG system will ingest data by chunking it into smaller pieces and converting them into vector embeddings and store in vector database. Depending on the complexity of the system, libraries like [spaCy](https://spacy.io)can be used for Token, Sentence, and Semantic Chunking. Additionally, frameworks like LangChain can be used for adding chunking methods such as from Recursive to Code and Markdown chunkers. By leveraging the power of Vector Databases to perform Semantic Search, and applying various strategies for Chunking Data, Re-Ranking, Query Transformation etc., we can build a resilient RAG system that can ensure the responses generated by LLM are relevant to the users' questions and grounded in the context given to it. Today, when we talk about AI-powered assistants, it's expected that such an assistant can search the web, find information in uploaded documents, or even generate a SQL query to retrieve results from a database, and use other tools/frameworks to create business intelligence dashboards with charts and graphs based on the retrieved data. A single user request can trigger multiple actions across different systems, such as HTTP calls, SQL queries, or web scraping, to name a few. The outcomes from these actions might then be used to invoke another set of tools. The number of tools and their complexity is increasing daily. As a result, the simple request-response model is evolving into a multi-layered, multi-system service architecture, where even a minor failure in one system can disrupt the entire process. A common approach is to add retry mechanism or circuit breakers to every call the system makes, but as a result, the code ends up being too complicated and filled up with different hacks implemented differently for different parts of the system: complex try-catch blocks, complicated retry policies logic and so on. [Temporal](https://temporal.io)Durable Execution Framework can help solve this problem by bringing durability and resiliency into multi-step RAG workflows. With Temporal, developers can focus on writing the code which matters - business logic, instead of spending hours trying to troubleshoot and bugfix a transient error in a retry policy logic. With Temporal, everything is a workflow, and every step in the workflow can be defined as an action, like calling an HTTP API or saving data to the database. Temporal ensures all steps in the workflow are completed and any transient failures are addressed by applying re-try, circuit breaker etc., A more detailed introduction to Temporal can be found [**here**](/blog/the-imperative-of-durable-execution-in-app-dev-unveiling-temporals-framework). In theory, Temporal is perfect fit for our task - making sure that all requests are completed no matter what, all information is gathered properly, and a response is successfully returned to a user. If any process fails during the execution, Temporal rehydrates the entire process on a different server and continues the flow of execution from the exact point where it crashed. It can do this because all the workflows in Temporal are stateful. It maintains the full state of the workflows in its internal database, so it has complete visibility into what happened. To see it in practice, our engineers at [TechFabric](/) created a simple proof-of-concept application to prove that such an approach makes sense and that it really makes it easier to develop and debug complex RAG applications. Let's walk through the application to see how it is architected. ‍ ## Chainlit To make things easier, we took **Chainlit**as a starter kit for Conversational UI. Chainlit provides everything we need to get started - nice and clean UI and a python server app where we can write the logic and calls to LLM! All we need to do is to define two methods: `@cl.on_chat_start` and `@cl.on_message`. ‍ ## Temporal: Everything is a workflow We talked about the approach for designing business logic via workflows in our [Airlines proof of concept](/blog/temporal-airlines-booking-demo-application). So here we jump directly into the code. The full code repository is on [github](https://github.com/Tech-Fabric/temporal-chainlit), so here we will focus only on important parts, imports and non-relevant code will be omitted. In Temporal, everything is a workflow and chatbot conversations are no different. When a user opens a page and starts a new thread, `@cl.on_chat_start` is called. That's a method where we start a workflow. ``` 1@cl.on_chat_start 2async def start_chat(): 3 client = await get_temporal_client() 4 5 cl.user_session.set("id", str(uuid.uuid4())) 6 7 # create a workflow id that will unique for user session. 8 workflow_id = get_workflow_id(cl.user_session) 9 10 handle = client.get_workflow_handle( 11 workflow_id=workflow_id, 12 ) 13 14 start_new_workflow: bool = False 15 try: 16 # there are multiple ways of starting a workflow only if it's not already started. This is 17 # a first option. Another option will be to use SignalWithStart method. 18 workflow_status = await handle.describe() 19 20 if workflow_status.status != 1: 21 start_new_workflow = True 22 except Exception as e: #.describe() throws an exception if workflow does not exists 23 start_new_workflow = True 24 25 if start_new_workflow: 26 handle = await client.start_workflow( 27 ConversationThreadWorkflow.run, 28 ConversationThreadParams( 29 remote_ip_address="40.40.40.40" # random ip, TODO: add code to get client ip address 30 ), 31 id=workflow_id, 32 task_queue="conversation-workflow-task-queue", 33 ) 34 35 thread_id = None 36 37 while(not thread_id): 38 thread_id = await handle.query(ConversationThreadWorkflow.get_thread_id) 39 await asyncio.sleep(1) # we are not inside a workflow so it's okay to make 40 # few calls to a workflow waiting for a thread id. 41 # Use such technique with care since it can cause performance problems 42 43 # Store thread ID in user session for later use 44 cl.user_session.set("thread_id", thread_id) 45 46 ``` Now, every time we open a Chainlit page it will generate a new user session and start a new workflow (new conversation thread, speaking in OpenAI API terminology). Workflow implementation does not matter at this point, all we need to understand is that one conversation thread = one conversation workflow. Such workflow can be started with arguments, in this example we used an IP address to show how one could use geocoding and weather API for chatbot to be able to answer questions like "what is the weather like today?" ‍ ### Sending a message Sending a message is as easy as sending a signal to a workflow passing user's prompt as an argument. ``` 1@cl.on_message 2async def main(message: cl.Message): 3 try: 4 client = await get_temporal_client() 5 6 workflow_id = get_workflow_id(cl.user_session) 7 8 handle = client.get_workflow_handle( 9 workflow_id=workflow_id, 10 ) 11 12 thread_id = await handle.query(ConversationThreadWorkflow.get_thread_id) 13 14 async with redis_client.pubsub() as pubsub: 15 # we want to display results as soon as possible. 16 # Or, as soon as they arrive at our temporal activity. 17 # Temporal is not designed to stream results back from a workflow, 18 # it's a workflow engine - it ensures that all our `Actions` are called 19 # successfully and in a proper order. 20 # to still stream the results back we introduce a message broker - redis. 21 # So, before sending a message signal to a workflow, we subscribe to redis events 22 # using thread_id as subscription topic. 23 await pubsub.subscribe(thread_id) 24 25 # Once the subscription is established and we are sure that we will receive all events 26 # - send the signal with user prompt 27 await handle.signal(ConversationThreadWorkflow.on_message, message.content) 28 29 # Signal will execute workflow activity (maybe multiple activities) 30 # to add a message to openai thread, to read a response 31 # checking if the tool call is needed... 32 # There will be an activity which calls weather api to get a weather 33 # in user's city, if he asks for it. 34 # All of that is not relevant here. Here, we only care about the fact 35 # that when any of those activities will have information that needs to 36 # be visible on UI as soon as possible, they will push that information to redis. 37 38 cl_message = None 39 while True: 40 message = await pubsub.get_message(ignore_subscribe_messages=True) 41 if message is not None: 42 message_dict = json.loads(message["data"].decode()) 43 44 # redis messages format is simple - we have event name under `e` 45 # property and event value (details) under `v` property. 46 # Event names are ones that openai sdk emits. 47 48 if(message_dict["e"] == "on_text_created"): 49 # message was created by openai - create a chainlit message 50 # object so it's displayed on UI (even if it's still has no text) 51 cl_message = await cl.Message( 52 author=assistant.name, content="" 53 ).send() 54 elif(message_dict["e"] == "on_text_delta"): 55 # there are some new tokens in a message, just append them to our 56 # chainlit message object 57 await cl_message.stream_token(message_dict["v"]) 58 elif(message_dict["e"] == "on_text_done"): 59 await cl_message.update() 60 await pubsub.unsubscribe(thread_id) 61 break 62 63 except Exception as e: 64 print("An error occurred:", str(e)) 65 cl.Message("An error occurred. Please refresh the page and try again.") ``` The code is not very different from regular chainlit application - the only difference is that we send a request to one system (via signal to temporal) and wait for results from another system (via subscription to redis topic). Before diving onto implementation details of how things work under the hood, let's take a look at high-level architecture diagram: ![A technical diagram which displays data from from user's browser to Chainlit python application, then to temporal worker. Temporal worker is connected to two activities: tool call activity and OpenAI message activity. Activities send data to Redis and redis streams data back to python api and then to user's browser.](/blog-media/a77f6ef4-66fda3709b7c77e87fb6953c_66d754ea7b45d54932effcad_28df804a.png) So far, we have covered the left side of the diagram, now let's switch to the right one and talk about the main purpose of adding Temporal to such an application: durable execution of functions. In this proof-of-concept, for the sake of simplicity, only one function is used - a default one suggested by OpenAI user interface when adding a function definition to an assistant on [https://platform.openai.com/assistants/](https://platform.openai.com/assistants/) ![](/blog-media/28ffd7dc-66fda3709b7c77e87fb69539_66d75555f82713aff43ae4ef_e95b9a34.png) When running the code from repository locally, make sure to create an assistant with `get_weather` function as in screenshot above and put OpenAI key and assistant id to .env file. Note that in OpenAI we just define function schema, implementation has to be on the application side. OpenAI API will return special response saying that a tool call is needed, we will have to handle that in our code, call the tool, send tool's response back to OpenAI and wait for the response generated with additional context - tool's output that we submitted. The implementation of `get_weather` function is very straightforward and can be found under `functions` folder. Now, the workflow's `run` method: ``` 1@workflow.run 2async def run( 3 self, 4 params: ConversationThreadParams, 5) -> str: 6 self.params = params 7 8 # Before doing anything else, let's make sure we have a thread 9 # to send messages to 10 response = await workflow.execute_activity_method( 11 ConversationThreadActivities.create_thread, 12 schedule_to_close_timeout=timedelta(seconds=5), 13 retry_policy=RetryPolicy( 14 initial_interval= timedelta(seconds=2), 15 backoff_coefficient= 2.0, 16 maximum_interval= None, 17 maximum_attempts= 10, 18 non_retryable_error_types= None 19 ) 20 ) 21 22 workflow.logger.info("Created thread: " + response) 23 24 self.thread_id = response 25 # Once thread_id is assigned, workflow query will return it, 26 # stopping that while loop in app.py 27 28 # For demonstration purposes we use get_weather function. Well, 29 # weather can be different across the globe, so the second step in a workflow 30 # will be to get a name of a city user is from 31 # For demonstration purposes you can see all possible parameters of RetryPolicy 32 # object 33 self.remote_city = await workflow.execute_activity_method( 34 ConversationThreadActivities.get_city, 35 params.remote_ip_address, 36 schedule_to_close_timeout=timedelta(seconds=5), 37 retry_policy=RetryPolicy( 38 initial_interval= timedelta(seconds=2), 39 backoff_coefficient= 2.0, 40 maximum_interval= None, 41 maximum_attempts= 10, 42 non_retryable_error_types= None 43 ) 44 ) 45 46 # If you are not familiar with workflow lifetime make sure to check out 47 # courses: https://learn.temporal.io/courses/ 48 # This like basically says that workflow will just exist (and is able to receive signals) 49 # until it's thread_closed property is set to True 50 await workflow.wait_condition(lambda: self.thread_closed) 51 52 return "thread closed" 53 54 ``` Now, when user sends a message, it will come via signal to a method defined on a workflow: ``` 1@workflow.signal 2async def on_message(self, message: str): 3 4 # This is how openai threads api works - first, we submit the message to a thread 5 await workflow.execute_activity_method( 6 ConversationThreadActivities.add_message_to_thread, 7 ConversationThreadMessage(thread_id=self.thread_id, message=message), 8 schedule_to_close_timeout=timedelta(seconds=5), 9 ) 10 11 self.messages.append(ConversationMessage(author="", message=message)) 12 13 # and once message is submitted, we can get a response 14 response = await workflow.execute_activity_method( 15 ConversationThreadActivities.get_response, 16 self.thread_id, 17 schedule_to_close_timeout=timedelta(seconds=120), 18 ) 19 20 # response may not contain text yet, it's possible that LLM does not 21 # have enough information to generate an answer yet. In that case we will 22 # get `tool_call_needed` property as True and that can happen multiple times 23 while(response.tool_call_needed): 24 tool_arguments = response.tool_arguments 25 tool_arguments.update({ 26 "location": self.remote_city # we know where user is located better than LLM 27 }) # because we reverse-geocoded his ip address in 28 # the first step of a workflow 29 30 tool_call_result = await workflow.execute_activity_method( 31 ConversationThreadActivities.function_call, 32 ToolCallRequest( 33 tool_call_id=response.tool_call_id, 34 tool_function_name=response.tool_call_function_name, 35 tool_arguments=response.tool_arguments 36 ), 37 schedule_to_close_timeout=timedelta(seconds=120), 38 ) 39 40 # tool_call_result should contain weather's information at this point, 41 # submit it to the LLM! 42 response = await workflow.execute_activity_method( 43 ConversationThreadActivities.submit_tool_call_result, 44 SubmitToolOutputsRequest( 45 thread_id=response.thread_id, 46 run_id=response.run_id, 47 tool_outputs=[tool_call_result] 48 ), 49 schedule_to_close_timeout=timedelta(seconds=120), 50 ) 51 52 self.messages.append(ConversationMessage(author="assistant", message=response.message)) 53 54 ``` Now, the most complicated and interesting part: activities! As usual, we won't be presenting every line of code, the file is available [in the repository](https://github.com/Tech-Fabric/temporal-chainlit/blob/main/activities/conversation_thread_activities.py). Activities also look straightforward - we just call OpenAI APIs to get a response stream. The difference in our approach is that EventHandler does not do function calls right away. It accumulates all events into `result` property so that, when returned from an activity, workflow could know whether a tool call is needed and with what arguments. ``` 1 2@activity.defn 3async def get_response(self, thread_id: str) -> ConversationThreadMessageResponse: 4 assistant = await self.openai_client.beta.assistants.retrieve( 5 assistant_id=self.openai_assistant_id 6 ) 7 8 # event handler will ge all events from a response stream as they arrive and accumulate 9 # them in it's properties 10 event_handler = EventHandler(thread_id=thread_id) 11 12 # runs.stream initiates a reader for a results stream 13 # the stream will contain all events happening on openai 14 # like text_created, text_delta, text_done 15 # Basically, for a simple promt 'hi!', the result stream will look like this: 16 # 17 # text_created 18 # text_delta("Hello") 19 # text_delta("! How") 20 # text_delta(" can") 21 # text_delta("I") 22 # text_delta("assist you ") 23 # text_delta("today?") 24 # text_done 25 # 26 # If the LLM will require additional data and will have tools (functions) 27 # configured, the response may not contain text events, but instead it will 28 # have events like tool_call_created etc. 29 # 30 # EventHandler's job is to accumulate all those events and return a final object 31 # with either full response message text or tool name and arguments. While gathering all those 32 # events, EventHandler will also stream them to redis so that UI can pick them up 33 # and display on UI as they arrive 34 async with self.openai_client.beta.threads.runs.stream( 35 thread_id=thread_id, 36 assistant_id=assistant.id, 37 event_handler=event_handler, # all of abovementioned events will be read by EventHandler class 38 ) as stream: 39 # It's a temporal activity, so we need to read the response to the end 40 # and return a result 41 # It's a responsibility of EventHandler to send all events to redis as they arrive 42 # but also to acculumate all events into it's `result` property, so that 43 # temporal workflow knows whether it needs to call a function or no 44 await stream.until_done() 45 46 return event_handler.result 47 48@activity.defn 49async def function_call(self, request: ToolCallRequest) -> ToolCallResult: 50 result = process_function_calls( 51 request.tool_function_name, 52 request.tool_arguments, 53 ) 54 55 return ToolCallResult(tool_call_id=request.tool_call_id, output=result) 56 57@activity.defn 58async def submit_tool_call_result(self, request: SubmitToolOutputsRequest) -> ConversationThreadMessageResponse: 59 # This function does everything in the same way as get_response, but also 60 # passes tool results to the LLM 61 # It also uses same EventHandler class because we need to stream the text 62 # to redis 63 event_handler = EventHandler(thread_id=request.thread_id, run_id=request.run_id) 64 65 async with self.openai_client.beta.threads.runs.submit_tool_outputs_stream( 66 thread_id=request.thread_id, 67 run_id=request.run_id, 68 tool_outputs=[{"tool_call_id": x.tool_call_id, "output": x.output} for x in request.tool_outputs], 69 event_handler=event_handler, 70 ) as stream: 71 await stream.until_done() 72 73 return event_handler.result 74 ``` Now, the last piece in the architecture - a class that's responsible for gathering all events that are streamed by OpenAI API: EventHandler ``` 1""" 2 3""" 4@dataclass 5class ConversationThreadMessageResponse: 6 thread_id: str 7 run_id: str = "" 8 message: str = "" 9 tool_call_needed: bool = False 10 tool_call_id: str = "" 11 tool_call_function_name: str = "" 12 tool_type: str = "" 13 tool_arguments: Optional[dict] = None 14 15 16""" 17 Event handler class for handling various events in the assistant 18 This class simply passes all events to redis so that results can be displayed on UI immediately, 19 but also it accumulates all data from events into it's `result` object so that, when result is returned from activity, workflow will know whether it needs to call another function. 20""" 21class EventHandler(AsyncAssistantEventHandler): 22 def __init__(self, thread_id: str, run_id: str = "") -> None: 23 super().__init__() 24 self.result: ConversationThreadMessageResponse = ConversationThreadMessageResponse( 25 thread_id=thread_id, 26 run_id=run_id 27 ) 28 29 async def on_text_created(self, text) -> None: 30 redis_client.publish(self.result.thread_id, json.dumps({"e": "on_text_created", "v": text.value})) 31 self.result.message = text.value 32 33 async def on_text_delta(self, delta, snapshot): 34 redis_client.publish(self.result.thread_id, json.dumps({"e": "on_text_delta", "v": delta.value})) 35 if not delta.annotations: 36 self.result.message += delta.value 37 38 async def on_text_done(self, text): 39 redis_client.publish(self.result.thread_id, json.dumps({"e": "on_text_done", "v": text.value})) 40 self.result.message = text.value 41 42 """ 43 Custom handler for a function call that requires action 44 """ 45 async def handle_required_action(self, tool_call): 46 # When the tool call is needed we don't stream anything to redis, 47 # because there is no message to display yet. We can send some event to 48 # display that some tool is being called at the moment but that's out of scope 49 # for this example 50 # here we just record the information about tool that needs to be called - it 51 # will be returned from an activity and workflow will execute another activity 52 # that calls needed function 53 self.result.tool_call_needed = True 54 self.result.tool_type = tool_call.type 55 self.result.run_id = self.current_run.id 56 if tool_call.type == "function": 57 self.result.tool_call_function_name = tool_call.function.name 58 self.result.tool_arguments = json.loads(tool_call.function.arguments) 59 60 ``` While Temporal may seem excessive for simple chatbots today, the future of AI assistants makes it clear that its adoption for more complex systems is inevitable. As technology evolves rapidly, what is now limited to simple queries like checking the weather or retrieving a document from a vector store will soon expand into more advanced tasks. For instance, we can easily envision a scenario where an assistant is tasked with scraping all real estate websites in a specific city for 3-bedroom apartments, sorting them by proximity to schools, and making phone calls to arrange viewings. Beyond web scraping, consider the complexities involved in making phone calls and handling all the potential outcomes of scheduling a viewing. Building a resilient system for such tasks would naturally lead to the development of a workflow orchestration engine. But Temporal already exists, and it makes sense to use it rather than reinvent the wheel. --- ## AI and Machine Learning Dominate Auto Finance Innovation Summit URL: https://www.techfabric.com/blog/ai-and-machine-learning-dominate-auto-finance-innovation-summit Date: 2024-11-07 Author: Preetham Reddy ![TechFabric stand on Auto Finance Innovation Summit.](/blog-media/60196f62-66fd9c0817db572d653e2664_64babb6b6bb772e0a229b557_dd9c05e0-6c7d-4ec8-8d02-94d89c19a72c_) The dust has settled from attending our first Auto Finance Innovation Summit in San Diego and I am even more convinced that the auto finance industry is in an accelerated state of application modernization. This is being driven largely by consumer interest in new ownership models and consumer demand to have impeccable user experience when purchasing or refinancing a vehicle. Executives from companies such as Carvana, CarFinance.com, Fair.com talked about their approach to product development and how they're trying to disrupt the way people purchase and own their vehicles going forward. Very interesting to see how these companies are trying innovative models to improve the experience of buying, financing or refinancing a vehicle. One of the things I was also excited to see was how the industry is embracing AI and Machine Learning so early. Session presenters largely made their specific points offering a balance of how AI will shape the future with the disruptions and risks that will undoubtedly follow. One session focused on Machine Learning and how it improves predictive power, using modeling techniques to extract deeper insights and value from existing data, for example; and how AI can identify hidden patterns of important customer behaviors, both of which go to reducing risk for the lender. How long this tech-fueled disruption will persist was up for debate, but what is clear is companies must embrace automation and data-driven insights to successfully navigate to the other side and achieve competitive advantage. At our booth we had a variety of conversations with companies looking to modernize their systems. Undoubtedly, Cloud computing plays a major role in modernizing legacy applications and make them sturdier, secure and scalable. We've made many investments in our cloud strategy to help companies use the power of cloud to build modern applications that drive their business. ![Automotive Technology Sphere at Tech Fabric.](/blog-media/f11ba4ea-66fd9c0817db572d653e2660_64babb6a6bb772e0a229b4fc_dec7788a-e7ce-4d23-b97b-eba23972f414_) Some industries are faster than others to adopt new information technology approaches but Automotive and Fin-tech companies seem to be embracing innovation with open arms. What's important is that all industries have the opportunity to be part of the boom in new products, new channels, new services, and business models offered through innovations in Machine Learning and AI combined with 5G. > TechFabric expects AI and Machine Learning to deliver huge opportunities for advancement, risk reduction, underwriting and acceleration in innovation and is thrilled to be on the cutting edge of that innovation and helping many companies in this space achieve their goals. , Preetham Reddy, Cloud Solutions Architect at Tech Fabric [**Tech Fabric**](/) specializes in building web, mobile and cloud based application on Azure/AWS. If you need help with taking your on-premise application to cloud or convert your Monolithic applications to Microservices based or use the power of AI & Machine Learning, we'd be glad to help you out. You can reach out to our sales team at [**contact@techfabric.com.**](mailto:contact@techfabric.com) --- ## 9 Checkpoints To Ensure Your B2B eCommerce Site is Firing on All Cylinders URL: https://www.techfabric.com/blog/9-checkpoints-to-ensure-your-b2b-ecommerce-site-is-firing-on-all-cylinders Date: 2024-11-07 Author: Sam Salima The modern web is a vast ocean of digital ecosystems, eCommerce solutions, and SaaS products. Competing in this digital arena requires precision code, well-developed content, and a best-in-class web presence. Here are a few design strategies and focus areas that will produce more leads, higher adoption rates, and increased sales. ### **1. Modern design matters** Many B2B organizations with a seasoned eCommerce presence continue to thrive with legacy systems and web interfaces. However, as customers continue to grow and evolve, they expect their digital connections to follow suit. Keeping your web design language fresh and modern can improve user engagement and cause the "Aesthetic-Usability Effect," which states that **we perceive attractive products as more usable**. People tend to believe that **things that *look* better will *work*better** ([**Nielson Norman Group**](https://www.nngroup.com/articles/aesthetic-usability-effect/)). Beautiful interfaces can often redeem you from poor functionality, lack of product information, and even bugs or dead links. ### **2. Clear and concise messaging** Provide straight forward content with clear messaging. Most often, your users are looking for something specific. It starts with SEO. Make sure your users can find you while researching answers. Your time in the spotlight is short, so skip the "glad-handing" jargon and get right to the point. A recent study shows that **55% of all page views get less than 15 seconds of attention.**([**Uberflip**](https://hub.uberflip.com/blog/13-stats-that-prove-that-nobody-is-reading-your-content-and-what-you-can-do-about-it)) Fifteen seconds isn't a lot of time to increase conversions, so be concise with content. ### **3. Easy navigation and simple architecture** An impactful user experience starts with excellent navigation component and should serve as a guide and not be a roadblock. Navigation becomes even more imperative when a user has a good idea of what to look for but doesn't know the keywords. Information Architecture and Search should be the two driving forces behind well-structured site navigation. Using common category labels will also help guide a user to the desired product. When possible, use customer service data or hold field studies to determine the right categories for listing products. ![Screenshot of the website product navigation.](/blog-media/d067e8d5-64b1a2ee0c5db79aa58b4ab1_f03b0355-2dd8-42bd-b8c9-f1075bab336f_60723b847a39d7b2fc5b2341_) _nmbtc.com - Product Navigation_ ### **4. More refined search results** Search should also play an instrumental role on any B2B eCommerce site. Reliable solutions like Azure Search have redefined the playing field for how online retailers and distributors help users find products. Data Science, including AI and Machine Learning, can give you deeper insight into what to show for search results. [**Find out how**](/)you can use Microsoft's new modern Azure Search capabilities. ### **5. Create value through user affordances** One factor in creating a delightful user experience is helping the user through micro-copy and micro-interactions. These minor touchpoints of usability will increase time value and promote repeat users. For example, give your users tips on how to use your site with component micro-copy. ![Screenshot of the Search Bar design.](/blog-media/30f75d14-64b1a2ee5bf98c52628b56b6_0ae3fb3a-a503-492d-9421-7075706fdef6_60723b840a6f0b7b0968c362_) _nmbtc.com - Search Bar_ You can also incorporate[**behavioral economic principles**](https://bootcamp.uxdesign.cc/behavioral-economics-nudging-and-user-experience-design-610940b41d75)such as "**digital nudging**" to help guide user behavior when making choices or selecting options ([**UXDesign Bootcamp**](https://bootcamp.uxdesign.cc/behavioral-economics-nudging-and-user-experience-design-610940b41d75)). These nudges can take the form of a simple icon, visual treatment, or even text. For example, a simple "right arrow" icon can entice a user and guide their behavior. ![The screenshot of application note example.](/blog-media/66ffae4e-64b1a2ee81e0b7230b7d768e_e718b76d-d356-41a1-80ec-62d104474f87_60723b84678fa12e6194cd1e_) _nmbtc.com - application note_ ### **6. Educate through Interactive content** Micro-interactions are another helpful technique to engage and educate customers about products. They require users to take an active part in exploring your products or service offerings. For example, they can use interactive components to discover how your products fit their business needs. ![A transparent car showing the Propulsion System Component Interactive](/blog-media/4c9e591b-64b1a2ee52bf51e109e1f737_c8e01f71-8ee6-4b8a-a95f-ef7ae7deaf2d_60723b8450d90bad6aeeb6ed_) _nmbt.com - Propulsion System Component Interactive_ ### **7. Effective CTA's** Most B2B organizations do a decent job with call-to-actions but often miss the mark. Having a "Contact Us" button or link at the top of the site gets you to the warning track but falls short of a home run. Simply having a single contact form hidden within the navigation can leave you vulnerable to site abandonment for distributors. The best user experiences are smooth experiences. Use CTA's within the content to move them down the marketing funnel to a conversion page. For example, offer other services and options in parallel with the content of your page. ![Screenshot of nmbtc.com - Inline CTA](/blog-media/28e41b3a-64b1a2eede5d7db5f8d325f5_b3ae5ca9-d23b-41cc-b7bd-d5b772d9dbc4_60723b841f4be85a1577a4e0_) _nmbtc.com - Inline CTA_ ### **8. Narrow the focus with landing pages** Online marketing has become an art form, and B2B organizations can no longer link ads to their homepage. Microsites and landing pages allow you to bring products and services into the spotlight without forcing users to navigate your entire site. Tailoring unique URLs with custom visuals, campaign-specific forms, and analytics produces much better results. Marketers can quickly build associated content with new graphic assets, product announcements, and offers without altering the main site. ### **9. It should look good on mobile** Every year, mobile web traffic increases, **hovering around 50%**([**Statista**](https://www.statista.com/statistics/277125/share-of-website-traffic-coming-from-mobile-devices/#:~:text=Mobile%20accounts%20for%20approximately%20half,since%20the%20beginning%20of%202017.)) and showing a 15% growth in the past five years. Users now expect mobile web experiences to have the same features and functionality as the desktop. Whether your starting your [**digital transformation**](/) or adding new features to an existing product, be sure to factor in how it translates to mobile. Keep in mind, if your organization does a considerable amount of targeted ads on social media like Facebook, your landing pages and web presence need to be mobile-friendly. Consider that **98.3% of Facebook traffic happens via mobile devices**, and 79.9% of users only use mobile ([**Sprout Social**](https://sproutsocial.com/insights/facebook-stats-for-marketers/)). ![Hand holding a phone.](/blog-media/309d7e06-64b1a2ee3d2dff568dd39c03_5b57a3e5-42d2-45a6-8e6c-b458cb61dd31_60723b846a2f27f602e24936_) _nmbtc.com - Connector Products Category_ ### **Key Take-away** Strong digital experiences are the key to competing in B2B eCommerce regardless of the industry. By implementing the 9 elements above, you'll significantly improve your lead generation potential and avoid leaving conversion on the table. Consult with an SEO expert and a User Experience Designer to create a plan and give your site a tune-up. --- ## TechFabric receives 5 stars on Clutch Profile URL: https://www.techfabric.com/blog/tech-fabric-receives-5-stars-on-clutch-profile Date: 2024-11-05 Author: Alyona Beliashova Being an accessible and efficient business digitally has increasingly become a [**necessity**](https://www.forbes.com/sites/danwoods/2016/04/18/why-third-party-software-support-is-possible-and-a-good-idea/#431bcb9c6c77) in today's world. However, that can be difficult to accomplish when online development has turned into something more complex and hard to navigate. That's where TechFabric comes in. We understand digital development can be hard, but necessary. We want our clients to succeed, and to do that, we are here to guide them through development services like cloud infrastructure and product strategy. TechFabric clients have reported over 60% increase in time to market and windfall profits as a result of our innovative methodology. It brings us great joy to see our work recognized with such kind words on our Clutch profile. Clutch is a DC-based B2B platform that allows former clients to leave reviews for solutions providers so future clients can have a better estimate of the experience working with them. One of our recent reviews on Clutch is from iLendingDirect. iLendingDirect is an auto loan refinancing company that needed help building a CRM development system for calculations and contacts. We took on all the challenges, and used our expertise and creative input to build a successful system for our clients. > **I appreciate their commitment and drive. From my experience, they hire the right people that are willing to do what's right. When things aren't going smoothly, I can call them, and they'll work through the issue with me. Their resources are top-notch. They go above and beyond, making our work better by bringing solutions to the table. Their team is always there for us.** VP of Technology, iLendingDirect ![Screenshoot of Clutch Profile.](/blog-media/5f555d88-64c3c04a83afb62ec611d42a_e08ae0b5-6894-476a-b6bc-19ad5abe16bf_5e6b4ef1127853184d2bef1f_) Another one of our clients who left a review include CU Direct Member Protection Services. With them, we crafted a process to transfer data from the internal management system to the cloud. Our work has led to greater customer engagement and resulted in efficiency on the client's end. > **TechFabric is actually running the projects themselves now because of their skill in that regard. We quickly developed a level of trust with them over the consistency with which they delivered and were able to hand over every aspect of managing the infrastructure, communication, and milestones for the project. In terms of project management tools, we make use of DevOps techniques to make sure that everyone is always on the same page** President, CU Direct Member Protect Services ![Screenshoot of Clutch Profile.](/blog-media/869077c7-64c3c04c11631da97fbff2ca_c178699f-51c1-4ad7-9bd4-72032fcf3e8b_5e6b4ef1d08b127eeb8da4c7_) Besides Clutch, you can also find us on their sister site, The Manifest. The Manifest allows business to [**consult with experts for project success**](https://themanifest.com/ecommerce-development/companies#techfabric). They can use the expertise and data from the platform to find the solutions provider that best matches their needs. #### **If you are interested in learning more, please contact us!** --- ## Using Custom Software Development Data For supply Chain Optimization URL: https://www.techfabric.com/blog/using-custom-software-development-data-for-supply-chain-optimization Date: 2024-10-31 Author: Leo Oliemans As the technological revolution advances at a rapid pace, enterprises are relying more and more on the Microsoft Dynamics 365 platform for supply chain optimization. Driving this intensifying demand for high-tech innovation is an urgent, industrywide need to process, analyze, and share massive amounts of data acquired through a seemingly unending stream of current and still unimagined resources. An antiquated inventory control and shipping process can quickly cripple an organization without a forward-thinking custom software development strategy already in place. ![Someone moving a piece on a board game.](/blog-media/ad1872bf-6706a2acc16e1889fba74fe5_64c3c4fb4459972e1069a0f4_5fae82d4-9981-441e-abfc-3d28aba6c7e3_) **Supply chain optimization: Anticipating future shipping patterns** Demand pattern analysis is a newly emerging area of supply chain management (SCM) that involves the detailed evaluation of consumer purchasing patterns and variability demands. When implementing demand pattern analysis to its maximum potential, companies utilizing demand-driven value networks (DDVN) can make predictions pertaining to inventory control and shipping requirements with pinpoint accuracy and across a broad range of time horizons. As a result, purchasing managers can secure and maintain necessary inventory levels through a smooth-running automation process. They can also ensure optimal lead times for reordering based on varying interdepartmental protocols, such as "First In, First Out (FIFO)," "Last In, First Out (LIFO), "Just In Time (JIT)," and other company-specific protocols. The Microsoft Dynamics 365 platform is quickly becoming the go-to solution of businesses seeking to jump aboard the demand pattern analysis bandwagon. With a variety of custom software development features and capabilities, this Microsoft Suite allows enterprises to integrate Robot Process Automation, Machine Learning, Artificial Intelligence (AI), power apps, and other [supply chain optimization technologies](/blog/supply-chain-optimization-do-i-innovate-or-do-i-wait) with ease. Furthermore, the Power Automate software helps businesses overcome traditionally labor-intensive challenges through customizable automation solutions to streamline every stage of the supply chain dynamic, from purchasing to warehousing and last-mile delivery. Microsoft Dynamics also includes the Microsoft Azure software, which helps organizations coordinate between various remote servers, virtual private networks (VPNs), content delivery networks (CDNs), and ExpressRoute connections with little to no previous coding experience required. The most successful companies also use Microsoft Azure for smooth integration with social media platforms, third-party vendor databases, in-house inventory databases, and numerous custom SaaS development assets. Collecting and analyzing big, medium, and small data has never been easier. **Custom software development for inventory control automation** The **logistics industry** is already implementing automation solutions in their inventory control and shipping processes, and the levels of complexity and sophistication of these technologies are steadily increasing. For example, FedEx and UPS are already automating many of their loading and unloading systems, including enhanced technological capacities that automatically foresee and circumvent potential delivery obstacles instantaneously. Meanwhile, recent advancements in data processing now allow for the successful automation of tasks that were once believed to be too complex, like trailer loading and offloading at faster speeds. By improving loading and offloading times, customer satisfaction levels soar, and the company saves money simultaneously. Below are just a few top trending technologies for custom software development and supply chain optimization in 2021 and beyond. ![People working in the background with a could of light on top of it.](/blog-media/54f02627-6706a2acc16e1889fba75013_64c3c4fbf958952fd6163271_1f92005d-c657-4263-8113-c6f0c0b0802e_) - **Robotics and Automation** Microsoft Power Automate is an easily customizable, cloud-based, no-code solution that allows organizations and line-of-business users to automate repetitive tasks quickly and easily. When Microsoft transformed its previous Microsoft Flow software into the new-and-improved Power Automate in April 2020, it included some revolutionary upgrades related to Robot Process Automation (RPA). IT departments no longer worry about successfully integrating legacy applications and software with their new custom software development infrastructure because Power Automate's recently upgraded UI-based capabilities make the digital transformation process quick and painless. - **Internet of Things (IoT)** Many organizations already rely heavily on IoT-enhanced devices to authenticate the precise locations of customer packages while en route. Some technologies can even predict possible delivery delays due to weather or traffic congestion while offering contingency routes to the drivers automatically. In fact, with consistent use, these technologies can also allow businesses to identify and resolve potential bottlenecks and problematic patterns throughout the entire supply chain. - **Cloud-based technologies** Transitioning to the cloud can be a challenge for the best of companies. Where does one begin? Fortunately, Microsoft comes to the rescue once again. Azure Cloud is incredibly convenient for the successful automation of supply chain data storage, data analytics, networking, and virtual computing. This innovative software also provides a variety of easily customizable and infinitely scalable automation solutions related to Software as a Service (SaaS), Platform as a Service (PaaS), and Infrastructure as a Service (IaaS) demands. - **Data analytics and reporting** Any organization can collect piles and piles of data for supply chain optimization. However, compiling this information into a coherent, easily sharable, and always up-to-date digital document is where most companies fall short. The Microsoft Power BI****platform is a cloud-based solution specializing in the analysis and reporting of small, medium, and big data in real-time. In-house managers, warehouse supervisors, loading clerks, and even the delivery drivers can access the same statistical dashboards and interactive reports simultaneously and with up-to-the-second accuracy. Gone are the days of multiple file versions, too. Among digital transformation companies, Microsoft Dynamics 365 is the most sought-after platform for custom software development and supply chain optimization. With various sophisticated pre-built applications, optimal scalability capabilities, and a stellar reputation for clean integration with legacy applications and authentication protocols, enterprises adopting the Microsoft Suite of products save time, money, and frustration. **The importance of strategic partnerships** Collaboration and strategic partnerships between companies within a supply chain are nothing new, especially regarding last-mile delivery protocols. FedEx and DHL may be competitors, but they also collaboratively partner with the United States Post Office, over 200 international postal services, and innumerable smaller, localized delivery companies worldwide. Even with this vast amount of cooperative teamwork, inconsistencies still exist. The implementation of more consistent delivery standards industrywide remains the ultimate objective. Until this dream is achieved, individual organizations are doing their part by adopting the latest technologies that promote these utopian ideals. When warehouse managers, suppliers, shippers, and third-party vendors use more and more of the same technologies, intercommunication and data sharing become more accessible and cost-effective for all. However, to catch up with the latest technological advancements, some businesses may need an additional partner of their own. ![A group of people brainstorming.](/blog-media/70c29406-6706a2acc16e1889fba7501b_64c3c4fbb99d9f4be7a9728e_b9d41126-7da7-4651-977b-a2bf19893eca_) **Microsoft Gold Partners for successful custom software development** Microsoft Solutions Consulting Companies help their clients understand the infinite possibilities of the Dynamics 365 platform. After evaluating a company's existing systems, applications, and infrastructures, TechFabric offers recommendations of specific Microsoft solutions based on the client's desired goals and objectives. Instead of in-house IT staff wasting valuable resources on designing new web applications and integrating multiple legacy programs with these new technologies, forward-thinking enterprises "partner" with a reputable Microsoft specialist to save time and money. They also avoid possible disruptions in business continuity at the same time. Top-rated digital transformation companies like TechFabric understand how difficult it can be for organizations facing supply chain optimization challenges to reach out and ask for help. As a leading Microsoft partner, TechFabric guides businesses large and small through the entire custom software development process step-by-step. For more information on the most advanced supply chain optimization technologies, [**contact TechFabric**](/contact)today. --- ## Top 6 Common Challenges Of Any Project Manager: Spot And Stop URL: https://www.techfabric.com/blog/top-6-common-challenges-of-any-project-manager-spot-and-stop Date: 2024-10-31 Author: TechFabric Who is precisely a project manager (PM)? What are the main functions of the PM? What are the key features of a skilled PM who indeed leads the team ahead? What is the critical problem does PM face every single day? In the following article, we will clarify all these and other matters about such a significant position in any company. Let's dig into the topic together! ## **Who is a Project Manager?** Another name of the project manager is just Agent 007. They are completely fearless and can substitute any member of their team if needed; they apply skills to encourage a sense of the common goal within the project team. They face challenges every day and enjoy it! Project management is a rather strict and controversial process. It is communication both with the team and clients, planning work schedules, monitoring project status, and meeting deadlines and solving problems that arise at any stage of the Project Lifecycle. It does not matter, whether you are a Junior Project Manager or a Senior one, to lead a team and show positive results is an always complicated task. The principal goal of any PM is to balance all the elements of a complex project and get positive outcomes of the whole working process. What challenges can a project manager face? Let's discuss them together and find ways to overcome such difficulties. ‍ ### Main Challenges Of A Project Manager ‍ ![Chess board.](/blog-media/c8b60e00-64c3ac6a216537e2d9253938_a4bb1192-9faa-4510-ae51-b15fbeec19aa_5ee73477d7deb94ad8bb4260_) ### **1. PM doesn't know all the tiny details of the project and tries to manage it with a little information** Research is all you need if you are not aware of all the project items. The number of meetings and information never lets PM be mindful of all technical issues of the project. Some obstacles appear every day, so as a result of the lack of attention is that a manager often slips out of the project context, and therefore, some deadlines might be skipped, and customers will be dissatisfied. **How To Prevent The Challenge?** There are several meetings where a project manager and the team can discuss all the burning questions and get an agreement. They are: - Grooming sessions-meetings, where an organisation holds a discussion and decomposes tasks for the immediate future, ask any questions and clarify all the issues that are currently unclear; - Planning sessions - meetings, where the team evaluates current tasks and realizes whether it is possible to fulfill them or not; - Demo sessions - meetings, where the team shares with project stakeholders a current result of their everyday work for a particular period. Such meetings are usually held one in two-four weeks (two sprints). The advantage of demo meetings is that stakeholders provide feedback and make adjustments to the team's work at all the project development stages. - If the meetings are regular and informative, there will be a productive cooperation with the Product Owner (or someone who performs this function) of the project and all the team members. In such a case, the project manager always knows everything about the challenges and benefits of the project and will be able to assist the employee or give a timely recommendation. - A lot of time spent with a team within the working process can resolve bottlenecks and blockers of any project. ‍ ### 2. PM doesn't prioritize tasks with project stakeholders Unfortunately, setting wrong priorities can cost a project manager, an arm, and a leg. Task prioritization has always been one of the primary goals of experienced project management. Preferences are often changed at the stage of completion and release. Grooming sessions with stakeholders is only one way to prevent setting wrong goals and give a false direction for the whole project. The best solution is to have regular grooming sessions with stakeholders and every time prioritize tasks. If priorities change and there is no opportunity to wait for the next meeting, it makes sense to prioritize tasks exactly with stakeholders and inform the team about current moderations and new priorities. ‍ ### 3. PM misinforms the team For the busy project manager is always more comfortable to speak to an employee in-person than hold a meeting with the whole team. Such a mistake can also be fatal in a team management process. It can lead to the rumor within the project, misunderstandings among the employees, and consequently dissatisfaction of the project members. Create a well-organized [***communication plan***](https://docs.google.com/spreadsheets/d/1xuBfDyRTtULFMe_7m0cHZ9YGkpZg2tdkJIyIeiQpfiY/edit#gid=0) with the whole team. The plan template might be different, but it must be present to lead the working process with minimal misconceptions. Regular meetings with a team will allow informing all the team members about some project alterations; - Don't get meet with people chaotically and tip off the information partially; - Write Meeting notes after each session and attach them to the link of the meeting or email them. ### 4. PM estimates individually the duration of project without technical specialists There can happen some moments when you have to provide the project estimation to stakeholders rapidly; however, there is not always a developer team to provide a PM with the proper evaluation. In such a case, the PM can set up a wrong project deadline. Promises to do something tomorrow or the day after tomorrow don't work! You should have a clear and realistic project deadline. Planning sessions with the team. Regular meetings, both with individual employees or the whole team, will help to avoid a crisis. - The PM should provide a useful evaluation of team members who are involved in the project. - Don't set a deadline for the customer without an initial meeting with technical specialists. They always know more than you! ‍ ### 5. PM doesn't know about changes in a project Scope creep often occurs in the process of project development. Thus it is better to control the project cases from the very beginning. For instance, if the Fixed and Price agreement is set up, all changes have to be monitored by the Change Request Management Plan. Otherwise, you will have to deal with additional tasks that your team also should do without extra payment. There can also be a problem in performing tasks with outdated requirements. For example, when the team completes the tasks, which are no longer relevant in the current project. However, the group spends time in managing all the functions and requires a payment. You have to change the management style. Otherwise, all your efforts to achieve the best result will fail. - Timely arrange meetings with the team and dig into the very detail of the project; - Add tasks with removal or postponing functions for the later period. ### 6. PM doesn't warn stakeholders of possible risks High-level risks which have to be announced to the stakeholders at once are often identified in the phase of initiation and project performance. It is the biggest mistake that a project manager can commit. A stakeholder is not ready for information like this, and consequently, a PM might have serious troubles and the whole project team. The only way to eradicate such an issue is to create [**risk logs**](https://docs.google.com/spreadsheets/d/1fGR5srCuh66ob6qXH7GUyzKXvVy73vtqeIoZQj2oBUo/edit?usp=sharing). Inform your stakeholders about all the inconveniences in the project in advance, employing presenting current data and providing them with a solid plan on how to overcome the troubles painlessly. - Warn the stakeholder about possible risks in every stage of task performance; - Impose risk log; - Share risk logs with all team members; - Work upon preventing potential risks. ![Men cheering an achievement.](/blog-media/ad4cecb1-64c3ac6a00d7483332f150ef_b1f1c652-6b91-40ad-b331-2a48ca97e7de_5ee73477fe8207fc10147c67_) ### **Wrapping Up** In this article, we have mentioned the most common mistakes of the project manager that can become a nightmare both for the customer and a stakeholder. To avoid all these challenges, you have to bear in mind just one thing: a total control of all the tiny project details and timely risk prevention can save the whole project. If you have decided to hold such an essential position in the company, never forget about your team and its critical needs. Together we can achieve everything! > **Leadership is the art of getting someone else to do something you want done because he wants to do it.** Dwight D. Eisenhower ‍ --- ## Supply Chain Optimization: Do I Innovate, Or Do I Wait? URL: https://www.techfabric.com/blog/supply-chain-optimization-do-i-innovate-or-do-i-wait Date: 2024-10-31 Author: Leo Oliemans When it comes to supply chain optimization and adaptation to new technologies, some companies rise to the challenge while others experience a brutally painful demise. Forward-thinking organizations are not afraid to take the bull by the horns and steer the marketplace into the next technological revolution, be it the age of the digital camera or the online streaming of music and movies. Fear of change often stops many business leaders in their tracks. Unfortunately, history is filled with examples of once-formidable companies failing to change with the times and eventually meeting their corporate doom. TechFabric helps small, medium, and large organizations to overcome these fears and related challenges by guiding them gently through the digital transformation process. ### **Supply chain optimization: Fear of change can have disastrous consequences** As more and more companies consider a digital transformation to cloud-based services, many business leaders inadvertently shoot themselves in the foot before they even begin the journey. With so many supply chain optimization solutions readily available, they often lose valuable time by becoming mired in indecision and self-doubt over selecting the best-possible products. With data coming into the organization from various resources and social media channels, choosing among products like Azure Cloud, Microsoft Dynamics 365, Power BI, and Power Automate can be a mind-numbing experience. Successful enterprises recognize that adapting to change quickly pushes them forward to the front of the competitive line. Procrastination, on the other hand, creates backward momentum. ![Truck driving on a highway.](/blog-media/06827d4b-64c3c41a51fd58bedc358a9d_c120c613-93f7-4198-9636-3a355cbcba10_606c2912e6494d2b2546c092_) > **If I had asked the public what they wanted, they would have said a faster horse.** Henry Ford ‍ - **Blockbuster** **Rise:**Back in the days of the VCR and VHS tapes, Blockbuster was a juggernaut of an enterprise. At its peak, Blockbuster boasted over 9,000 stores worldwide and employed nearly 85,000 employees. The company even transitioned to the renting and selling of video games at one point, which only increased its appeal, its profits, and its global domination. **Demise:**Enter Netflix in 1997. The seemingly overnight sensation of Netflix on-demand movie streaming services should have signaled to Blockbuster that things needed to change, and change quickly. The rise of Netflix meant that movie enthusiasts no longer needed to get dressed, drive to the local Blockbuster, and cross their fingers that the movie they wanted to rent wasn't already sold out. *"Digital would have changed Blockbuster's business, for sure, but it wasn't its killer,"*marketing expert Jonathan Salem Baskin once said. *"That credit belongs to Blockbuster itself." ‍* - **Pan-Am Airline** **Rise:**Pan-Am (Pan American World Airways) was once the largest and most profitable air carrier in the United States. Besides their tremendous reputation for providing top-notch, in-flight customer service, Pan-Am was also the first airline to offer jumbo jets and computerized reservation services. The airline was so popular that it was considered the unofficial flag carrier of the United States. **Demise:**Pan-Am is a perfect example of how a massive failure in supply chain optimization strategies led to the downfall of a Giant of Industry. When the company began experiencing financial losses after a United States invasion of Kuwait in August 1990, things went downhill very quickly. Fuel prices instantly began to soar, and Pan-Am found themselves lacking a backup plan. Already overly invested in its existing, and now instantly obsolete, business model, Pan-Am Airlines would quickly collapse by December 4, 1991. ‍ - **Kodak** **Rise:**Kodak was founded in 1888 and quickly became the leading provider of photographic camera film for the 20th Century. Over the decades, Kodak also became so skilled at photo processing that they started building thousands of tiny, drive-up photo booths across the nation. Kodak's marketing department is even responsible for inventing the still-trendy catchphrase, *"A Kodak Moment."* **Demise:**Kodak was King. In fact, the company was so ahead of the game that it even invented the first digital camera way back in 1975. But silly Kodak succumbed to their fears of change, or maybe they just got cocky. Company leaders failed to jump on-board the digitalization transformation bandwagon because they feared that digital cameras might cut into their profits from conventional photo film and processing. Fuji, one of Kodak's rivals, quickly took the reins the digital camera revolution, and Kodak's popularity and profitability faded into oblivion. ![A man trying to decide which way to go.](/blog-media/406f7af9-64c3c419e59531e6560bcdc6_ce9209a4-5b84-4b6f-818a-8404b4581593_608154095aa9fc2149cdfd64_) **Supply chain optimization: TechFabric helps companies achieve success** Yes, the Kodak story is a supply chain optimization nightmare. But it was not completely unforeseeable. While the Kodak Top Brass might have experienced the same fears of change as many of today's industry leaders, Kodak's most significant obstacle was its extreme failure to ask for help. Its managers had grown arrogant and stubborn after decades of market dominance. Seeking the advice of a third-party consultant somehow signified weakness in their minds, and they paid the negative consequences as a result. TechFabric understands how difficult it can be for companies facing supply chain optimization challenges to reach out and ask for help. As a Microsoft-certified development partner, TechFabric guides businesses large and small through the entire digital transformation process step-by-step…and without the attitude. For more information on the most advanced supply chain optimization technologies, [**contact TechFabric**](/contact)today. --- ## How To Work From Home With Children URL: https://www.techfabric.com/blog/how-to-work-from-home-with-children Date: 2024-10-31 Author: Alyona Beliashova Work from home with children during the quarantine period of COVID-19 was the reason for many jokes, funny videos and memes. Yes, it's not easy to combine your current job with the job of being a parent! :) ![A person working and two kids taped to the floor.](/blog-media/c6f54086-64be860d13adad6b860029ed_b82fbd7c-9805-404e-80b3-57300a9f849b_6014288dde75ec099d1f1a3b_) Our company has many experienced adult professionals, so it is not surprising that many team members now work at home, being with children for the period of quarantine. We would like to share with you our tips and life hacks for combining work and stay with children: ### **1. Constant Planning** ![A paper agenda.](/blog-media/2857b86e-64be860d13adad6b860029de_3dbf8cc9-2687-4bdc-ab4f-b97def9e14b4_6014288e8564754d4e67f93f_) Your work day, like any project, needs careful planning. Make a schedule for the day and try to stick to it. Children should spend their daily time on: - physical activity; - creativity (painting, modeling, etc.); - education; - media entertainment (cartoons, films, etc.); - relax and sleep. ‍ ### **2. Equal Parents' Involvement** ![Adult playing a board game with three kids.](/blog-media/c0f3f00d-64be860db6e4617b66f9b340_2727a3ed-74c9-4d5e-be8a-ecd045a4d863_6014288ec8b2f97a7c39cd1b_) If there are two parents in the family, it will be twice better for remote work. While you are working, your spouse can take responsibility for the family and play with kids. Your turn is next, so prepare some tasks in advance and change your partner when it is needed. ### **3. Use media for emergency** ![Children watching TV.](/blog-media/c42bde38-64be860d2ddbf94df0b8c927_8c2014cb-7b85-4161-bb69-c56ffbfb9044_6014288e6129c7405ca184f0_) When you need to make a necessary call or join a zoom session, set up the most favorite cartoon of your kid, and just go), your children will be busy for at least an hour. Such a trick can also help with demanding negotiations or else. ### **4. Make Purchases In Advance** ![Various games.](/blog-media/4a7204a8-64be860dd41d52c276bb0dbe_3f8ead2a-4b9e-4667-96ee-0f03dfc59586_6014288e76da1e349d75e1f0_) You should always have something new for your kids, so buy books, entertaining games, and just new toys in advance. You will see how your life will change when you always have a tiny surprise for your children. ### **5. Effective Communication** ![Parent talking with kid.](/blog-media/3601ccea-64be860ddaafa99d3ad78379_396682ff-279c-40bf-9aa8-53dea53f4982_6014288e623985728715108b_) The way you****speak with your children can show you the way you communicate with your colleagues and partners, so every time they demand your attention, you would better negotiate with them and get a compromise. ‍ ### **6. Patience, Sweet Patience** ![A person practicing Slack lining.](/blog-media/963efcc4-64be860d2ddbf94df0b8c972_48691829-465e-449f-88ba-0c0ce1957d2c_6014288e161bf064659c55c4_) Keep calm and love your life! Every single day you have to create new ways to stay mentally healthy. All the mess connected with the virus irritates, so to survive till the time when you can go to the office again, you need to control your negative emotions, concentrate on the right things and be ready to upgrade your life. Here are some **additional tips from our employees** on how to stay positive at home and be productive as well: > **The first thing to do is to detach yourself from any noise with the help of headphones or else. Agree with children, and play with them for ten minutes several times per day, but no more, and give them tasks for the time until the next ten minutes. They will be happy to play with you and will not disturb you because you already paid attention to them.** Alex Bobel ‍ > **I have three children, so I'm used to planning and sharing responsibilities with kids. They constantly do something: paint, wash up, cook easy breakfast such as bacon and eggs, clean the rooms, play with a cat, peel potatoes, do crafts from off-the-shelf materials, watch cartoons, help each other, etc. The older ones realize that mom and dad are working and try to entertain each other.** Anna Skochylova ‍ > **Well, the first thing we did with my husband was game purchasing. We bought various games, entertainment, and educational tutorials for our daughter, and we did truly right! We asked our daughter what she would like to do when we were busy, and she made a short wish-list. Her reply was unexpected, but she was eager to make a small replacement in her room. Undoubtedly, we helped her, and it took several days that satisfied us. The tip we would like to share with you is to communicate with your children. They may surprise you with their catchy ideas!** Alina Kiian ‍ > **Despite working necessity, you should not forget about your parental obligations. You have to draw your attention to your children. To make a co-working effectively, you should agree with all the cases with children together. Time, rules, benefits, and obligations-everything must be approved in advance. For instance, we play together, watch cartoons, and perform other things, but we know the exact time when parents should work. Don't forget about Internet possibilities as well! There are lots of juicy games and exciting quests for the children, why not implement them? Here is one of thelinks to follow. Play with your children, speak with them, give them tasks, and make them feel self-independent personalities.** Denys Skochylov ‍ As you can see, the correct distinction between working and free time, planning, communication and other techniques outlined above will allow parents to effectively carry out their work while caring for the child. Our colleagues do it very well and they proved how productive a working day with children can be. Take note and work with pleasure! ![Keep calm and stay home.](/blog-media/2f5692cb-64be860d4795c4723c23a383_b08f4a53-437a-4368-96e1-5d5744320443_6014288edb9c9affd2f6046c_) ‍ --- ## Dynamics 365 CRM: Transforming Your Sales Quote Process URL: https://www.techfabric.com/blog/dynamics-365-crm-transforming-your-sales-quote-process Date: 2024-10-31 Author: TechFabric For businesses to build strong customer relationships and accelerate the sales cycle, providing accurate and rapid quotes is a top priority. But this isn't the case for many organizations, and if you are reading this, there are likely challenges within yours as well. From accessing records and data across multiple systems to pulling and compiling data from multiple departments to lengthy and complicated approval processes, making getting a quote out a herculean task. All the while you're thinking, "**there must be a better way.**" ## Take a Different Approach The problem may not be your organization, it may be **the CRM you are using**. While many CRMs offer industry-specific tools and pre-set processes, they come with a BIG weakness, which is **lack of customization and adaptability**. Enter**Microsoft Dynamics 365…and a solution.** Unlike other CRMs, Microsoft Dynamics 365 CRM (Customer Relationship Management) offers reliable tools for creating and managing quotes, it allows us to **fully customize workflows**, documents and versioning to the business needs. Where other CRMs force organizations into their workflows and methods, **Dynamics provides nearly unlimited flexibility** to work the way your business needs to. This guide will walk you through the process of creating and storing quotes within Dynamics 365 CRM to show you its capabilities and how it can work for your business. In this post, you'll see how Dynamics 365 **simplifies the creation and storage of quotes** and integrates with the Microsoft 365 ecosystem to generate ready-to-send documents, keeping track of every update and version. ## Why Use Quotes in Dynamics 365 CRM? Simply put, because it is **easier, faster, and more accurate**. By using Dynamics 365 CRM to manage quotes, you ensure: - **Accuracy**: Centralizing all information and automating quote creation ensures less human errors in highly detailed information. - ‍**Efficiency**: Preconfigured templates save tons of time and ensure consistency across all departments and quotes. - ‍**Traceability**: Full visibility across the lifecycle of a quote, from creation to approval, streamlines quote configuration and approval processes. - ‍**Integration**: Clean integration with other CRM area such as Opportunities, Orders, and Invoices means all customer records are centralized. - ‍**Versioning**: Each update is tracked and new versions automatically created removing the noise and mistakes when multiple versions are floating around. ## Why Customized Quotes Matter Every business and client is unique, so a one-size-fits-all approach to quotes rarely works. Clients expect quotes that **reflect all their specific needs and discussions** leading up to the quote stage. This is where **Dynamics 365 outshines**other CRMs. From customized pricing to specialized products to additional amendments and notes, Dynamics 365 CRM can adeptly capture and relay all info to generated quotes, so they are fully customized without forcing you through additional hoops. #### **Benefits of Customized Quotes in Dynamics 365** - **Tailored Information**: Each quote is based on the specific customer needs and customized to their accommodations, including custom pricing, quantities, and terms. - ‍**Professional Presentation**: Quotes are generated in a professional, customizable template that reflects your branding, maintaining consistency across all client-facing documents. - ‍**Quick Adjustments**: If (and when) the client requests changes, Dynamics 365 allows for quick modifications and versioning, so sales can turnaround changes quickly while simultaneously tracking history with ease. ## Generating, Storing and Managing Customized Quotes in Dynamics 365 Once quoting has been enabled, templates generated and the first quote is ready to be created, we're ready to start. ![](/blog-media/15ff8fff-6723d1332f79925b25f6a2ea_techfabric-blog-Dynamics365-img1.jpeg) ### **Quote Generation** **Navigate to the Sales Hub:**To start, log in to Dynamics 365 CRM and navigate to the **Sales Hub**. From here, you can access the entire sales process, including creating quotes. ![](/blog-media/a4eeb3bd-6722709098757a0d8241fad5_slide-1.jpeg) _Select the Opportunity/Deal or Create a New One_ - **Select the Opportunity or Create a New One:**Quotes are typically tied to opportunities in Dynamics 365. You can either create a new opportunity or select an existing one that's ready for a quote. If you're creating a new opportunity, ensure you've filled in all the necessary details such as the customer information, product details, and expected revenue. ![](/blog-media/a1635bfc-672270bd30450442757f25e8_slide-2.jpeg) _Select the Opportunity/Deal or Create a New One_ - **Generate a New Quote:**Once the opportunity is set up, follow these steps: Go to the **Quotes** section under the opportunity. - Click on **New Quote** to begin the quote creation process. - The system will automatically pull relevant information from the opportunity, such as customer details and product selections. ![](/blog-media/dca35dd0-672270d8e054b11198b8335c_slide-3.jpeg) _Customize the Quote by setting up the layout that fits your business needs_ - **Customize the Quote: You can now customize the quote with additional details:****Add or Remove Products**: Choose from the product catalog or manually enter products if they're not listed. - ‍**Adjust Quantities and Discounts**: Modify quantities, apply line-item discounts, or offer special pricing as necessary. - ‍**Set Expiry Date**: Ensure the quote remains valid by specifying an expiry date. - ‍**Add Notes**: Include any relevant information, such as delivery timelines or special terms. - ‍**Review and Save the Quote:**Once all details are filled in, review the quote for accuracy. Dynamics 365 allows you to preview the quote before sending it to the customer. Once satisfied, click **Save**. At this point, the quote is now stored in the CRM and linked to the opportunity. ### **Storing Quotes in Dynamics 365** In Dynamics 365, you have options on how you store quotes. Let's look at the built-in functionality, and you can see how they can be stored in SharePoint later in this blog. ![](/blog-media/776e64d1-672270f49b684a52e101bd4a_slide-5.png) _Store Quotes in Dynamics 365_ - **Centralized Storage:** All quotes are stored in the Quotes section within the Sales area, making it easy to find and manage each quote by customer, status, or date.‍**Tip:** There are other options such as SharePoint for quote storage, which can give you added features. ‍Status Tracking: Each quote has a status (e.g., Draft, Active, Closed), giving you and your organization visibility into its stage in the sales cycle. - ‍**Tip:** You can search by status within Dynamics to pull up quotes in that view. ‍Relationship to Opportunities and Orders: Quotes are linked directly to related records, like Opportunities or Orders, for a smooth flow from initial quote to final sale. - ‍**Tip:** These linkages help keep your CRM organized and reduce time coordinating during quote cycles. ### **Managing Quotes** It remains stored in the CRM system and can be accessed at any time. Here are some ways to manage your stored quotes: - **Search and Filter**: Use the built-in search function to quickly find quotes by customer, date, opportunity, or even status (e.g., draft, approved, or expired). ‍**Tip**: Filtering by other criteria can help you home in on quotes faster (like providing your birthday at the pharmacy when picking up a prescription) ‍Attach Documents: Stop collecting all reference documents when a quote is ready to go out and do it ALL within Dynamics. Attach supporting documents, such as PDFs or proposals, directly to the quote and track what additional materials have been sent. - ‍**Tip**: Attaching everything to quotes and email in Dynamics makes it simple to track all sales transactions with the customer and centralizes them within the CRM. ‍Security and Access Control: Dynamics 365 allows you to set role-based access controls, ensuring that only authorized team members can view or edit quotes. No more clandestine quotes outside of the normal process, control it with access and keep everything centralized. - ‍**Tip**: Work within your org to establish access control for all existing salespeople and create a plan for when new ones are onboarded. It will streamline your organization and prevent teams from stepping on each other's toes. ## Gain Even More with SharePoint Integration Beyond storing quotes internally within the Dynamics CRM, Microsoft's vast ecosystem allows for other solutions like SharePoint. SharePoint is another location where quotes can be stored, and there are pre-existing connectors and integrations to do it. This integration, along with some custom development, allows for smooth document management, ensuring that every quote is stored, versioned, and ready for client delivery. ### **Why Store Quotes in SharePoint?** ![](/blog-media/5ba54aae-67227102541db0552a29cec5_slide-6.jpeg) _Store Versions, Set Rules, and Collaborate in SharePoint_ - **Enhanced Collaboration Beyond Dynamics Users:**SharePoint allows anyone within the organization (even those not using Dynamics 365) to access and convene on quotes. **Instead of adding users to Dynamics** just for visibility, use SharePoint and save training time and costs. **‍** - **Version Control with Historical Access**: While Dynamics 365 only keeps the latest version of the quote, **SharePoint maintains a complete version history**. Each saved update is stored as a new version in SharePoint, allowing you to track and reference every change made over time. In contrast, Dynamics users would only see the most recent update, making SharePoint essential for tracking detailed document histories. - ‍**Streamlined Document Workflows**: SharePoint's reliable workflow automation **allows for customized approval processes**, notifications, and reminders. If a quote requires additional input or approval from stakeholders, SharePoint, in conjunction with Dynamics and integrated Office 365, can help you cleanly manage that process, saving time and minimizing the back-and-forth between systems. - ‍**Compliance and Data Retention Policies**: For organizations with strict data governance requirements, SharePoint offers **advanced document retention and compliance**features. Quotes are retained according to regulatory requirements, archived appropriately, and easily retrievable for audits. SharePoint's compliance features provide a level of security and auditability not native to Dynamics storage. - ‍**Advanced Search and Metadata Capabilities**: SharePoint offers powerful search functionality, including the ability to tag quotes with metadata like client names, contract terms, or regions. This makes locating quotes far more efficient, especially if your organization manages a high volume of sales documentation. ### **Key Features of SharePoint Integration** 1. **Automated Document Creation**: Once the sales team creates and saves a quote in Dynamics 365, our custom integration automatically generates a Word document version in SharePoint. This eliminates the need for manual document preparation and ensures that the document is properly formatted. 2. ‍**Version Control**: With each modification to the quote, a new version of the document is automatically saved in SharePoint. Our integration tracks these updates and reflects the changes in the document's file name, ensuring transparency and accuracy. Each version includes a timestamp or version number, making it easy to trace the history and evolution of the quote. 3. ‍**Document Storage in SharePoint**: All generated documents are stored in SharePoint, giving your team centralized access to the latest versions whether they work in Dynamics or not. 4. ‍**Client-Ready Documents**: Our integration automatically formats the document, meaning it's ready to be sent to the client as soon as the quote is saved. This allows your team to respond quickly to client requests without spending time on manual formatting or edits. ### **How This Integration Benefits Your Business** - **Streamline the End-to-End Process**: SharePoint expands automation from just quote creation to the entire process including revisions, approvals, and cross-team notifications. - ‍**Improved Tracking & Accuracy**: Automated version control ensures that every update is tracked, reducing the risk of sending outdated or incorrect quotes to clients. - ‍**Increased Efficiency**: With automated document generation and quick quote adjustments, your sales team can respond faster to client inquiries, helping you close more deals, faster. By integrating SharePoint for document management, they were able to reduce quote turnaround times by 40% while removing manual entry errors by over 95%. That is the power of Dynamics when fully integrated with SharePoint for doc storage. ## Lastly, Take Advantage of D365 Automation We've covered a lot of the built-in and extended features when connecting with Office 365, but we would be remiss if we didn't highlight the power of automation in the Dynamics platform itself. Dynamics 365 can automate multiple segments of the quote process, reducing manual time and, at the same time, improving data accuracy. Here are a few of the top automations our customers use every day. - **Automated Pricing Calculations**: When products or services are added to a quote, Dynamics 365 auto-calculates pricing, including volume discounts, special pricing agreements, and applicable taxes, based on pre-defined rules in the product catalog. ![](/blog-media/9d98102b-67226c013f0042ef9400f3c3_slide-4.jpeg) _Specify Products and Price_ - **Pre-Filled Customer Data**: If a contact or account is linked to a quote, Dynamics 365 automatically fills in relevant customer information, such as billing and shipping addresses, saving you time and reducing the risk of errors. - ‍**Basic Workflow Automation**: At various stages of the process, custom workflows can trigger actions. For example, once a quote is approved, Dynamics can auto-generate an email notification to the customer or notify team members for review. - ‍**Quote Validity and Expiry Tracking**: Dynamics can set automated reminders or notifications based on quote expiry dates, helping sales teams follow up on open quotes before they expire. - ‍**Template Application**: When generating quotes, Dynamics 365 can automatically apply templates, ensuring consistent branding and formatting without needing to manually adjust each document. These automation capabilities make the quote process faster, more consistent, and more responsive, freeing up the sales team to focus on high-value activities over process details. ### Conclusion With so **many CRM options** out there from well-known to industry-specific, it can be tough to imagine how a generalized platform from Microsoft could lead the pack. Four words explain the "why" behind Dynamics 365 growth, **customization, centralization, integration, and automation**. Dynamics allows for nearly unlimited customization, so your back is never against a wall with functionality. Its ability to centralize all CRM functions, including advanced quoting, allows organizations to work more efficiently. And with integrations across the MS ecosystem, Dynamics can communicate across your entire org and Office 365 ecosystem. The last and the **fourth pillar of Dynamics** **is Automation**. can you automate areas like versioning through Dynamics and SharePoint, but by leveraging additional platforms like Power Automate, you can automate and streamline your workflows even further. How about automating notifications every time a new version of a quote is created? Using Dynamics, you can do that and a heck of a lot more. Would you like to explore how Dynamics 365 CRM can streamline your sales quoting process? Contact our Experts --- ## What Every CTO Needs To Know About Databricks URL: https://www.techfabric.com/blog/what-every-cto-needs-to-know-about-databricks Date: 2024-10-30 Author: John Bellaud As a Chief Technology Officer (CTO), you are continually on the lookout for platforms and technologies that can drive IT and your business forward, but day-to-day challenges get in the way. It's tough to innovate and future-proof when there are hurdles that need to be solved for now. Well, that's exactly what Databricks can do. Solve tomorrow's data and business problems today. Using a new approach to intelligent data platforms, Databricks is transforming the landscape to help organizations, and their CTOs, rapidly succeed where they previously struggled with data. ‍ ## **Why Databricks?** There are many reasons, but let's start with the main pillars. Databricks is a unified analytics platform that brings together data engineering, data science, AI, and machine learning. It's built on proprietary Lakehouse architecture and combines the best features of data lakes and data warehouses, making managing, analyzing, and deriving insights from your data simpler and far more efficient than ever before. Databricks streamlines the entire process, from data ingestion to advanced analytics, enabling smarter decision-making across all areas of the organization. This means simplified data management, greater performance, faster innovation, elevated customer experiences, and a stronger bottom line. For developers and data engineers, Databricks is a game changer. It simplifies complex data workflows with integrated tools and automation. Data teams can easily build, deploy, and manage data pipelines, all while the platform handles the heavy lifting of infrastructure management. This boost means teams focus more on innovation and less on managing the nitty-gritty details that slow them down. **‍** ### **What Sets Databricks Apart** Ask one of our data experts what differentiates Databricks from other platforms, e.g. Snowflake, and they'll tell you it isn't just a list of yes/no features, it is the underlying thinking that built them. Snowflake's founders looked to harness the power of the cloud to create a centralized data warehouse solution for business. While it is also a fast-growing solution and unified toolset, they have been slower to incorporate tooling for engineers and data scientists, and it is often through 3rd party services. Databricks, on the other hand, began with a focus on data engineering and data science from the start. The platform integrates forefront technologies like the Apache Spark framework for handling big data workloads, ML flow for managing the entire machine learning lifecycle, and Time Travel for ensuring model reproducibility. Databricks also introduced Delta Lake, an optimized and versatile storage layer that transforms data reliability and performance. While it could be argued that Snowflake or other data platforms are better for certain use cases, it is tough to overcome Databrick's total offerings and complete approach. No data engineer will want to pigeonhole themselves into a single choice, but we are seeing a trend in our data teams selecting Databricks more often over other platforms to solve data challenges. To take a deeper dive into Databricks, here are core features you should know about. ‍**‍** ## **Databricks Core Feature** ![](/blog-media/97c11414-66fd9c5243427501291912d8_66d74c237bbdfc2a6e5de84e_66d74a710f3fd54b8362c756_Tf-blog-data) _Databricks Core Features_ ### **1. Unified Data Platform**: - **Lakehouse Architecture**: Combines the strengths of data warehouses and data lakes. **‍** - **Delta Lake Integration**: Ensures ACID transactions, scalable metadata handling, and unified batch and streaming data processing. ### **2. Comprehensive Data Management**: - **Data Ingestion**: Cleanly ingest structured and unstructured data from various sources. **‍** - **Data Storage**: Reliable and scalable storage solutions that support high data integrity. ### **3. Advanced Analytics and AI**: - **Databricks SQL**: Democratizes analytics for both technical and business users. **‍** - **Machine Learning**: Integrated tools for building, training, and deploying ML models. **‍** - **Databricks Mosaic AI**: Advanced AI capabilities that understand and optimize your unique data. ### **4.Collaboration and Productivity**: - **Collaborative Workspace**: Enables data teams to work together efficiently. **‍** - **Multi-language Support**: Supports Python, SQL, R, and other popular languages. **‍** - **Visualization Tools**: Built-in tools for creating interactive dashboards and reports. ### **5. Security and Governance**: - **Unified Governance**: Centralized data management and governance. **‍** - **Security**: Strong security measures to protect sensitive data. Databricks' unified approach, a mix of proprietary tools and deep integrations with widely used technologies provides IT leaders and data teams with a single platform to rapidly transform their dataverse, helping turn it into the organization's most valued asset. ‍ ## **Benefits of Databricks for Development** The end goal may be actionable insights that drive business growth, but Databrick's approach helps data teams get there faster. ### **1. Accelerated Innovation**: - **Speed and Efficiency**: Fast data processing and real-time analytics enable quicker insights and decision-making. **‍** - **Scalability**: Easily scale up or down based on demand, optimizing costs and performance. ### **2. Enhanced Collaboration**: - **Unified Platform**: Brings data engineers, scientists, and analysts together, fostering collaboration and innovation. **‍** - **Ease of Use**: User-friendly interface and multi-language support make it accessible to a wide range of users. ### **3. Cost Efficiency**: - **Optimized Resource Utilization**: Auto-scaling and efficient resource management reduce operational costs. **‍** - **Open-Source Foundation**: Avoids vendor lock-in, providing flexibility and cost savings. **‍** ### **4. Improved Data Governance and Security**: - **Centralized Governance**: Streamlines data management and compliance. **‍** - **Advanced Security Features**: Protects data integrity and privacy. ### **5. Better Customer Experiences**: - **Real-Time Analytics**: Enables businesses to understand and respond to customer needs promptly. **‍** - **Personalization**: Advanced AI capabilities help in delivering personalized customer experiences. ‍ ## **Creating a Databricks Implementation Plan** Any implementation needs a good strategy, so below are some of the key areas you'll want to plan for when looking to migrate. ### **1. Integration with Existing Systems**: - Map out all the necessary systems and sources within your ecosystem to ensure clean integration with your current data infrastructure. - Leverage Databricks' connector ecosystem for smooth data flow. ### **2.Data Migration Strategy**: - Plan a comprehensive data migration strategy using available Databricks migration guides and tools. - Consider using Delta Lake for a smooth transition and enhanced data management. ### **3. Team Training and Skill Development**: - Invest in training programs to upskill your team on Databricks. Take advantage of what the platform offers to train teams. - Encourage collaboration and knowledge sharing within your data teams. ### **4. Performance Monitoring and Optimization**: - Continuously monitor data pipelines and models to ensure optimal performance. - Use Databricks' performance tuning tools to improve efficiency and reduce costs. ### **5. Security and Compliance**: - Understand and document your organizations security and compliance need to ensure all areas are captured - Implement strong security measures to protect data, including Databricks pre-built security infrastructure. - Ensure compliance with industry regulations and standards. ## **How We're Using Databricks** ![](/blog-media/cea827d3-66fd9c5243427501291912df_66d74c237bbdfc2a6e5de852_66d74ab811f16f7ed58f8215_Databricks-2) _Techfabric & Databricks partnership_ No matter what industry or business you are leading IT in, Databricks can make a big impact. Here are some of the ways we use the platform across different industries and use cases to give you a glimpse at how Databricks is being implemented in the market today. - **Finance:** Leveraging Databricks to analyze transaction data in real-time, identifying fraudulent activities and assessing risks quickly. Advanced machine learning models can detect anomalies and predict potential threats. - ‍**Media and Entertainment**: Using Databricks to analyze viewer data and social media interactions, enabling them to understand audience preferences and behavior to create more engaging content and targeted advertising. - ‍**Healthcare**: Leveraging Databricks to process and analyze large volumes of patient data from current and emerging sources (e.g. wearables), enabling predictive analytics for better patient care. - ‍**Retail**: Analyze large volumes of customer data in real time. By leveraging machine learning models, businesses can predict customer preferences, optimize product recommendations, and tailor marketing campaigns. - ‍**Manufacturing**: Implement Databricks to analyze data from sensors and machinery to predict equipment failures before they occur, reducing downtime and maintenance costs. ### **Key Takeaways & Learning More** Databricks is not just a tool; it's a strategic asset that can redefine how your organization handles data. By integrating Databricks into your data strategy, you position your teams and business for greater agility, efficiency, and innovation, ultimately giving you an edge over the competition. In short, Databricks provides a powerful, versatile platform that: - **Provides data engineering teams with**the flexibility, built-in tools, and streamlined workflows that bring tremendous efficiency gains. - ‍**Provides business with**advanced analytics, enhanced insights, and AI/ML capabilities that allow for better decision-making that drives real business growth.**** Embracing Databricks won't just elevate your data strategy, it will position you as a forward-thinking technology leader within your organization. As CTOs in our partner orgs adopt Databricks, we've seen their data transform into a new asset that fuels business growth by allowing you to innovate faster, collaborate more effectively, and make data-driven decisions with confidence. If you are looking for more information to help you decide if Databricks (or another platform) is right for you, [contact us, and let's talk](/contact). --- ## Why Business Can't Afford to Ignore Generative AI: 10 Game-Changing Benefits URL: https://www.techfabric.com/blog/why-business-cant-afford-to-ignore-generative-ai-10-game-changing-benefits Date: 2024-10-24 Author: John Bellaud **Generative AI** is no longer just a buzzword or tech trend, it's a **powerful tool**transforming every industry in ways we never thought possible. Also known as Gen AI, it is an advanced form of artificial intelligence that **creates new content**, such as text, images, and documents, based on patterns learned from data. Organizations use it to **automate manual processes** including content creation, report generation, and even to design marketing materials, but that is just the tip of the iceberg for Gen AI. While those use cases may be getting attention, they are far from the only reasons businesses are adopting Gen AI platforms. The real power is its**ability to perform data retrieval** tasks like combing through thousands of documents in milliseconds to compile accurate answers**and actionable insights**. No matter what sector you are in, or what use cases you are looking at AI to solve, integrating Gen AI can completely revolutionize how your enterprise operates. **Here's 10 reasons why:** ### **1. Automate Complex Tasks** Generative AI has the unique ability to automate repetitive and time-consuming tasks that slow businesses down, from basic data entry to complex content generation. Whether it's drafting reports, creating marketing content, or even coding, **AI can handle much of the heavy lifting**. This frees up resources to focus on more strategic tasks but also boosts productivity across the organization. ### **2. Enhance Decision-Making** ![](/blog-media/1ba72719-671a88c30effd169708ec183_techfabric-blog-GenAI-section-2.jpeg) It's no mystery that **informed decision-making**is crucial for enterprise success. One of Generative AI's strengths is it can process massive amounts of data, **recognize patterns, and deliver actionable insights** that help leaders make smarter, data-driven decisions. Instead of spending hours sifting through reports, **AI delivers insights in real time**, giving decision-makers the power to make insight-rich decisions from a simple prompt. Enterprises are actively **using Gen AI to do everything** from compiling complex reports to optimizing supply chains to identifying new revenue streams, all leveraging platforms like [Fiber](https://www.fiber.inc/) AI to turn mountains of data into actionable insights in seconds…not days, weeks, or months. ### **3. Boost Innovation and Creativity** Generative AI doesn't just automate, **it can create and generate**. From generating new product ideas to developing marketing campaigns, AI tools can assist in brainstorming and even producing prototypes. This means your team can push the boundaries of media and innovation faster than ever. Imagine AI suggesting new product designs, content ideas, or business strategies that you hadn't thought of, **unlocking the potential** that could lead to breakthrough innovations. ### **4. Transform Customer Experiences** ![](/blog-media/e0765d79-671a88dd6356f8dd36cd1f12_techfabric-blog-GenAI-section-4.jpeg) Generative AI can analyze customer data to create highly personalized experiences, from tailored product recommendations to customized email marketing campaigns. In customer service, AI chatbots can handle queries, provide instant support, and deliver personalized responses. **Gen AI Use Case: Customer Service Agents** - A leading insurance provider handles a **high volume of customer service calls** and chats. Where senior agents truly understand products and handling claims thoroughly, newer agents don't. **Junior CS agents need lots of training and coaching** and are far slower as they are totally dependent on scripts and combing through large volumes of documentation to find the right answers. - **Enter a Gen AI chatbot platform like Fiber.** - The company uploads all past and current customer service **documentation into Fiber's dataset engine**. This includes training guides, call transcripts, notes, and any related data, even call recordings. - [**Fiber**](https://www.fiber.inc/)**automatically trains itself** on all the uploaded (and integrated) data, providing customer service agents with a **simple prompt to ask any question**, as well as bubbling up the most common answers for quick access. - Now, CS agents simply type in any question or query and **receive an instant, accurate answer** based on the full dataset. They don't need to retain loads of tribal knowledge or escalate issues nearly as often. Not to mention, **new hires require far less training** as they can immediately use the Fiber system to get the answer they need. This example is just one of hundreds of use cases for Gen AI platforms. They take the**heavy lifting out of the equation** allowing organizations to rapidly gain a better understanding of their customers to build stronger relationships and**improve loyalty**. ### **5. Accelerate Product Development** In industries like pharmaceuticals, manufacturing, and software, speed to market is everything. Generative AI can **accelerate development cycles** by simulating tests, automating design processes, and providing insights and recommendations for improvements. For instance, in drug discovery, AI can analyze billions of molecular structures in a **fraction of the time**it would take humans, speeding up the development and testing of new treatments. In software, AI can help with **code generation and debugging** around repetitive setup and framework tasks. Using Gen AI, **dev time** can be **dramatically reduced**, especially around areas that repeat on every project. ### **6. Increase Operational Efficiency** ![](/blog-media/4a031ed9-671a89016bf5d8e49c1cdde1_techfabric-blog-GenAI-section-6.jpeg) One of the most interesting business applications of Gen AI is **identifying inefficiencies**. Some AI chatbots (including [Fiber](https://www.fiber.inc/)) now include "agents" or bots that can retrieve information, they can actually perform tasks. - Let's look at **an example of AI agents**. If you prompt an agent to "find bottlenecks and delays in our manufacturing process and recommend ways to correct them", Fiber's internal agent bots will activate and analyze the existing data and begin suggesting improvements. AI agents will assess each workflow and station in the process and identify where **slowdowns or stoppages are occurring**. It will then make recommendations on how to unblock them or ways to restructure the process to **facilitate the optimizations**. Whether it's streamlining supply chains, improving resource allocation, or optimizing energy usage, AI agents can**help enterprises reduce costs**, speed up operations, and find ways to make better use of resources, factors that are **critical for ongoing efficiency**, cost reductions and overall growth. ### **7. Enhance Data Management** Enterprises generate massive amounts of data, but making sense of it can be a **long, arduous, and complex process**. This is an area where Gen AI truly shines and excels at organizing, analyzing, and making sense of large datasets. AI can clean data, identify trends, and generate reports, enabling enterprises to **harness the full potential of their data**. This use case is in full swing today, **with platforms like**[**Fiber**](https://www.fiber.inc/), and others, that can process and transform large datasets into actionable insights using a single prompt. With better data management comes **better decision-making**, more targeted marketing, and overall efficiency gains across the entire business. ### **8. Improve Security and Risk Management** ![](/blog-media/66a60f22-671a8916dd986d923396ae3d_techfabric-blog-GenAI-section-8.jpeg) Enterprises face constant security threats and compliance challenges and Generative AI can help detect anomalies, **predict threats**, and mitigate risks before they cause damage. AI systems can monitor network traffic, identify suspicious activity, and **alert security teams to potential breaches** in real-time. Additionally, AI can assist with compliance by generating reports, tracking regulatory changes, and ensuring that companies stay aligned with industry standards. When it comes to Gen AI platforms, **many get a bad rap** since they re-upload all data back into the public domain. No business wants their internal data to be exposed to the world, but **not all Generative AI platforms work that way**. [Fiber](https://www.fiber.inc/), for instance, is a **fully private**chatbot platform that lives "within the walls" of an organization. While it uses LLMs and other models, it does **not allow data to be uploaded** **outside** the organization, keeping it fully private and secure. If you are looking for a Gen AI platform, keep this in mind and investigate **how the data is managed** to ensure it meets your org's security requirements. ### **9. Support Talent Development and Retention** AI can play a significant role in **enhancing employee experiences** and skill development. AI-driven platforms can analyze employee performance data, recommend personalized learning paths, and even **assist with recruitment** by identifying top candidates who are the best fit for your company. By integrating AI into HR processes, enterprises can ensure that their employees are growing and contributing in meaningful ways, **increasing retention** and employee satisfaction. When it comes to applying Gen AI to use cases like this, **integration is often necessary** to gain access to the data. Not all Generative AI platforms are alike, some will only work with uploaded data, where others like [Fiber](https://www.fiber.inc/) can integrate with your systems and **fully automate the process**. Be sure to assess your data will be accessed and be sure the Gen AI platforms you are looking at align with those needs. ### **10. Stay Competitive in a Tech-Driven World** Finally, using Generative AI is about staying competitive. The global business landscape is increasingly **driven by AI and automation**, and this is only the beginning. Enterprises that don't adopt AI risk falling behind their competitors. Not just because it is trending, but because of the power it delivers to business. Those that do integrate AI into their operations keep pace and often **gain a significant competitive edge**. By leveraging Generative AI platforms like [Fiber](https://www.fiber.inc/), businesses can stay at the forefront of their industry, adapt quickly to market changes, and gain the rich insights and automation needed to **continually** **drive innovation**. #### **Conclusion** Generative AI is not just another tech trend, it's a foundational tool that can **transform how enterprises operate, innovate, and grow.** From enhancing decision-making and improving customer experiences to optimizing operations and driving creativity, the benefits are broad and deep. But **not all Gen AI platforms are alike**. do they specialize in different functions and use cases and in how they **manage your data**. If you are like most businesses, you'll be looking for a platform that keeps your data private and secure, ensuring it **isn't exposed outside**of your organization. As we move further into the future, enterprises that embrace AI will be the ones leading the charge, where those lagging in adoption will struggle to keep up and innovate as fast as the competition. Don't let your organization **fall into this trap**. **Now is the time to embrace Generative AI and shape the future of your enterprise.** Want to learn more about Fiber and how it can bring Generative AI to your business? Learn More --- ## UI/UX at Scale: It's Time To Move to Design Systems URL: https://www.techfabric.com/blog/ui-ux-at-scale-its-time-to-move-to-design-systems Date: 2024-10-23 Author: Sam Salima Design systems have been increasingly growing in popularity within organizations, namely due to their ability to help companies achieve scale and enable front-end developers while maintaining consistent styling across an application or suite of applications. When used properly, design systems have the capacity to streamline projects and achieve total consistency, which is why over[**50% of surveyed design professionals said their companies**](https://www.forrester.com/blogs/why-and-how-to-create-a-design-system-and-get-help-with-it/) have made the switch. ### **What is a Design System** Design Systems are a constantly-evolving set of reusable components and guidelines, giving designers and engineers a common language for total consistency across product and web design creation. ![Layout of design system screens](/blog-media/f0f31a89-67117eec82d5581d97884dcd_651d0f6355c8e104a427063c_be2314ec-9f3d-42e3-af44-a9fc76ac91da_) ### **Design Systems vs. Style Guides** Style Guides used to be the industry standard, they provided documentation on fonts, logos, patterns, styles, and usages that teams could use for future projects. Style guides are still crucial, but it is a small component of an overarching design system. Ultimately, design systems encompass both brand and UI guidelines giving designers and engineers the predefined rules and guidance they need to rapidly develop front-end user experiences. In a nutshell, design systems don't tell designers and engineers what to create, they provide a consistent, fixed ruleset showing them *how to create it*. ![](/blog-media/dcf8ab20-67117eec82d5581d97884dd5_651d0f63693a968a9841a234_5ec2cf19-276a-43cb-ab9b-fde0497d12b7_) ‍ > **Design Systems keep all project stakeholders aligned and create consistency across all digital touch points. It reinforces the company brand while allowing developers to quickly build solutions based on a single source of design truth.**‍ ##### Sam Salima, Head of Design at TechFabric ### **Building Blocks of a Design System** A design system is only as strong as the components inside of it. Using atomic design principles, it's important to start very small and work your way up. **Atoms:** This would be buttons, inputs, icons, labels, and any other small elements used within the design. **Molecules:** This is a (small) grouping of atoms. Examples could be creating a profile header or a checkout function. **Organisms:** This is where atoms and molecules combine into a larger element. For example, you created a profile header but in this organism stage you might take that header, have a page image, and include a search function. **Templates:** Templates are a culmination of all of the above, and is reusable across the entire platform. **Pages:** These are the final stage, which can be a combination of templates and separate organisms, and can be tested across your platform and used to make updates to separate elements. ![](/blog-media/26da26c1-67117eeb82d5581d97884dc8_651d0f63ffe165a9513b0a45_ed4c4ffe-1892-4395-af1b-8b41894f25b1_) ### **Why You Should Consider a Design System** There are many reasons to adopt design systems into your development approach and your business, but one of the most important is scale. Previously, scale only existed in design in the form of guidelines. These could be applied across different media for brand consistency, but they did not include full sets of reusable components, front-end code or any form of automation. Today's design systems define all the UI-level components and rulesets allowing them to easily scale across all your products and applications and grow with them. Gone are the days of designers developing every screen and interaction, using a design system you design once and scale unlimitedly across all your media and applications. Let's look at the major reasons to implement design systems within your organization. **Scale**: Such a key element it is worth repeating, the ability to scale front-end across your entire organization will allow you to better manage and control your customer and user experiences without reinventing the wheel for every new feature or application you roll out. **Consistency:** Ever opened up a landing page your team designed a year ago and remark how outdated it looks compared to your existing website? This is 100% avoidable with a Design System. All your teams and partners (e.g. your PPC agency) pull from the same library of UI components to create individual templates, features, screens, etc. **Teamwork & Efficacy:** There aren't design-centric arguments because the entire team, from Design to QA, collaborates to create, test and codify the design system prior to roll out. With the teams already invested and eager to move quickly with consistency, the design system quickly becomes relied upon as their single source of truth and they take pride in enforcing it (just ask one of our front-end specialists). **Cross-Team Enablement**: Arming engineers with design systems gives them the tools and freedom to prototype and test independently. Previously they would run loops with design for each interaction, no matter how simple. Removing these loops allows dev teams to more rapidly create, test and validate new features and screens while allowing designers to focus on more important UX areas and tasks. **Move Faster & Cut Time to Market**: For all of the reasons listed above, design systems also make it faster to roll out new features and iterations. Less back and forth, less confusion, less rounds of edits means you move faster and release value to your end-users more often. **Helps Manage Compliance**: Design systems can include built in rulesets for areas like accessibility (WCAG, ADA, etc.) to ensure your user-facing experiences are up to current standards at all times. ### **What Comes in a Design System?** **Design Pattern Library**: Any approved and frequently used patterns. This could be shapes, lines, colors, etc. **UI Component Library**: This includes buttons, widgets, etc. This ensures that with additional features and pages, UI elements are completely consistent and designers can move much faster. **Design Principles**: These are design rules that apply to the organization. Think of these as pieces of advice as opposed to a physical element. For example: "Simplicity always" will be something a designer adheres to when designing out a mobile screen. **Accessibility Elements & Guidelines**: These are rules and recommendations that enable teams to create designs that are more accessible and also comply with Accessibility Guidelines. Rolling out a Design System for your organization can make monumental changes cross-functionally, saving your company time and money in the long-run. But more importantly, it gives front-end specialists the efficiency they need to rapidly develop and deploy new features while maintaining consistency at scale. While creating your system might seem like more effort in the beginning, the resources saved in the end (not to mention the constant consistency) pays for itself many times over. Not sure where to start in setting up your Design System? [**Let's chat**](/contact)! --- ## Trending Ideas For Cloud Services URL: https://www.techfabric.com/blog/trending-ideas-for-cloud-services Date: 2024-10-23 Author: TechFabric Mobile Apps have been around almost as long as the mobile phone. While programs were developed for use on the 'brick' phones as the early mobiles were called in the 1970s, the first apps as we recognize them today were created in the early 1990s. They weren't popularized until a few years later when PALM and Blackberry released their PDAs with some of the first screen icons to tap to activate the application program. The technology grew along with demand, but there was no major leap until the development of Mobile Edge Computing roughly twelve years ago to reduce congestion on the system of mobile networks. Over the last decade, technicians and software engineers began applying some of the same solutions to the growing load on computer networks since the link between traditional and mobile computing grows closer every year. moreover, the expansion of **Cloud computing** and storage services bring offered In September 2016, the European Telecommunications Standards Institute (ETSI) officially changed the name of Moblie Edge Computing within their organization to Multi-access Edge Computing to reflect what was happening and to keep the recognized MEC acronym. The name has caught on with other organizations, and many have now followed suit when talking about the problem and probable solutions. The goal of Multi-access Edge Computing has not changed, only expanded. The requirement now is to reduce congestion on all computing networks, not just mobiles, improve application performance by pushing the actual task processing closer to the user. Finally, MEC seeks to improve the delivery of both the apps and content to each user. This incredible environment is now one of ultra-low latency, operating across high bandwidth with real-time access to radio network information. Cloud computing capacity with MEC is beyond anything engineers could have predicted back in 1973 with the first mobile phone. Making the most of the opportunities in this new value chain means not simply following the trends and concerns, but riding the front edge of them. Artificial Intelligence (AI) and Machine Learning (ML) are the next steps. While AI is an improvement to nearly every type of operation, on the cloud or otherwise, ML is an AI discipline specifically developed to learn and problem-solve by observation, analysis, self-training, and experience. In other words, it mimics human learning at speeds not humanly possible. Advances in ML improve apps and any other program or function operating on cloud computing. The time for operation moves so quickly now that many other non-AI or ML systems simply cannot keep up. Improved function and speed also serves to reduce the cost of operation for the company leaning forward. Apps on an ML system do use it and teach the system to function more efficiently with every operation. That brings us to the [**Internet of Things**](https://medium.com/iotforall/iot-explained-how-does-an-iot-system-actually-work-e90e2c435fe7) or IoT. Say that, and most people still think of an office full of desktop and laptop computers. That list now includes smartphones and tablets for mobile access to any number of computer systems. Buildings, vehicles, and other items such as storage containers also make up the IoT as well. Each of them can be embedded in software, sensors, a network connection, and other electronics to send and receive data. In these expanded, physical networks, MEC becomes the link which makes it possible for a company to become an international entity. With the right app, a warehouse manager in Mali receiving goods from the US can track the cargo container from the time it is loaded and sealed to the moment it arrives at his loading dock. Augment that [**with an ML network**](https://azure.microsoft.com/en-us/services/machine-learning-service/), and he can determine its exact GPS location out in the Atlantic. If the cargo requires refrigeration, he can also monitor and control the temperature 24/7. Maintaining this type of oversight is why many cloud computing companies continue to develop and improve their location-based services. Linking these devices to a GPS has other advantages as well, depending on the requirement. Individuals using a fitness tracker tailoring a training run can use geographic information to maximize the amount of time at higher elevations or plan for a flat track to gauge time and speed.**Trucking companies** can better plan routes and alternates when they have access to continually updating map and traffic information. There is also, of course, the military applications for moving troops and material as efficiently as possible. Since none of this is possible without being able to trust the MEC system, security is always a leading concern for users. Data theft and service stoppages are common threats now, with updates to encryptions and other countermeasures happening on a daily basis to combat foreign entities and hostile individuals. One of the most effective methods to protect data and its cloud platform is pass-through authentication. Authorized personnel logon to the required server via a network connection on a company owned device or a personal tablet or phone once it has been registered with the server, examined for malware and the appropriate app is downloaded. Authentication happens once the server accepts and then passes the logon information to a Domain Controller (DC) located on the platform. The DC and the user's device are the only machines that have the correct password or another authentication key. After the DC registers approval of the logon, it sends the validation back to the server and access is granted to the user. All of this happens over a secure channel governed by a Network Logon (Netlogon) Remote Protocol. The NRP has no authority or responsibility in the process; it only serves to move data back and forth. Take credit card approval as an example. The NRP does nothing when it comes to determining eligibility. It only serves as a digital letter-carrier, sending the application to Delaware and then delivers the new card to the applicant. Staying on the edge of trends and concerns in the new MEC environment is a constant process. The company that can maintain their lead when it comes to security, the IoT, and Machine Learning, can take advantage of the opportunities and expand faster than their counterparts in an instantaneous, global environment. ‍ --- ## Transform Your Data Visibility, Transform Your Organization URL: https://www.techfabric.com/blog/transform-your-data-visibility-transform-your-organization Date: 2024-10-23 Author: TechFabric Ever hear the phrase "data rich, insight poor"? It's easier now than ever to collect data in a variety of avenues within your organization, but that data can only be as powerful as your organization's ability to gain intelligence and insight from it. On top of that, today's organizations are required to adapt faster and more thoughtful than ever before as consumer, partner and vendor demands for data integration and visibility grow.. We see it frequently. Established organizations who perform thousands, or even millions of interactions per day rely on their data, but when they try to use it to gain actionable insights, the visibility and intelligence aren't there. Departments then are coming up with their own separate insights and deliverables based on high-level views, assumptions and misguided metrics, making it feel impossible to gain the insight the business needs to make meaningful change. **Data Visibility is Crucial- Here's Why** There's no question that data is important to your business- but it really has the capability to either cause massive roadblocks or catapult your growth. For most organizations, data is much like an iceberg with only the smallest, least powerful insights showing above the surface. The deeper, richer intelligence lies beneath and often needs restructuring and replatforming to bring it to the surface. ![](/blog-media/a190f9ab-64b08e8a1fe2d49e044774f9_aa5b7cf2-3c15-4a2c-a21f-a77435740d2b_techfabric-blog-transform) ‍ **Gain Actionable Insights** Data visibility enables an organization to use reporting and analysis tools to put dependable data in front of the teams and executives who need it most. This dimensional reporting allows them to draw reliable conclusions and map out your organization's best next steps. Whether you are looking for quantitative or qualitative next steps- your team has a clear look into the metrics that are most important to you. **Positioned for Scale** Today, data is currency. Lacking a cohesive data strategy and operation will hinder automation making it almost impossible to scale. With your data collected in one place and giving your team full visibility to make educated decisions- your organization is ready to move in the right direction but to expand more quickly as your needs and digital footprint grow. **Save Time** is it risky to have your data stored in varying platforms, it's also exhausting and timely to track the data when it's required. This approach puts strain on every area of the business from executives to customer service. Multiply the time lost by the number of interactions per day across the entire business and the time loss becomes exponential. The old way of gathering data might have been: Gather data from ERP, client systems, approximately 4 separate data systems, customer service department data. The data is "organized" in piles, presented differently and taking weeks to consolidate. It's not necessary, and it's a massive time suck for team members who could otherwise be working on more impactful and productive tasks. Using modern data strategies and approaches, the era of "manually compiling reports" as part of day-to-day activities is over. Data automation and reporting will remove these tasks while increasing visibility and productivity in every area of your business. **Total Visibility** You'll hear us say this repeatedly: consolidate your data and gain complete visibility into your organization. Without it you are at a major disadvantage and poised to fall behind competitors who are innovating their dataverse. Conversely, with a consolidated approach our data is now in the right place and the right format, providing the actionable insights to remove barriers and find new gears of efficiency that can transform ROI. **How Do You Gain the Visibility and Intelligence You Need?** ![](/blog-media/899bc563-64b08e897c29cd9dd2a6cedb_30a9c3a1-23ce-481c-832b-647aa2f5ff02_techfabric-blog-transform) ‍ **There are two clear, common paths for data transformation** Ultimately, your organization can choose from two paths- one a bit easier (but not as customizable) than the other. **Option One: Integrate Reporting Tool Directly with Database** Depending on how your data ecosystem is structured- and how your team uses its database- a software development partner can integrate a reporting tool within your existing database. ![](/blog-media/55cd253f-64b08e8af86a773633a03d1d_84751a78-a542-4f4c-ab76-30358f288ca1_techfabric-blog-transform) ‍ **The pros to integrating with a reporting tool:** **Time**: Typically the timeline for a reporting integration is shorter as it connects directly so building other data solutions (e.g. warehouses) is not needed. **Cost**: Just like anything else, it costs less to integrate with a tool that already exists than it does to build out something custom. **Option to move to custom in the future**: If your organization uses an existing tool and over the course of a couple of years realizes it would benefit from a custom approach - you can always choose to move forward with a more advanced solution (e.g. data warehouse) and carry the learnings forward to inform the new strategy. This could even save you money and time in the long run and give you both short and long-term solutions. **The downside to directly integrating with a reporting tool** **Performance:**This can be an issue when the database is handling your application's read/write transactions as well as complex data manipulation used by your reporting tools. Having your reporting tools actively running reports on the same data tables your applications use to perform everyday actions can lead to unexpected delays for the users of your application and the everyday actions they perform. Debugging the root cause for these performance spikes can cause countless hours lost by your engineers; who will have a difficult time reproducing the same latencies. **Does not include all data sources:**If the database we are integrating reporting into does not house all the disparate data sources for the company, organization-wide data visibility becomes a challenge. **Schemas can change:**In a single, or main database, the schemas can change due to shifting or growing needs. This means reporting can "break" or must be updated to match the new schema. With a data warehouse, the transactional database schema can change independently without affecting the data warehouse or reports being executed by people at your organization. **Too many hands in the pot:**Reporting can involve sensitive company data, and pulling it directly from the primary transactional database means more developers and architects have visibility. Teams that work on the applications at your organization are working on the database and have access to the sensitive transformations of the data on a regular basis. In the data warehouse model, developers do the setup but then the automation removes them from ongoing visibility. Also keep in mind sensitive customer data, e.g. health records. Often compliance dictates who can and cannot gain access, which may be an issue when data is aggregated in your primary transactional database which more people typically would have access and interaction with. **Option Two: Build a Data Warehouse, then Integrate with a Reporting Tool** There isn't a one-size-fits-all approach to data- which is why building out a customized data warehouse can be a fantastic solution for an organization. ![](/blog-media/cd2c09c0-64b08e89d8e92c5a05717396_d03eb521-3d5f-49fe-a73c-493b9a699426_techfabric-blog-transform) ‍ In this option, a data warehouse is built on top of all databases creating a central repository for all data sources. This allows for complete data visibility by aggregating and formatting all incoming data and making it available to reporting tools and services. Business analysts, data engineers, data scientists, and decision-makers access the data through business intelligence/BI tools (e.g. Power BI or Tableau), SQL clients, and other analytics applications to gain the actionable insights they need. **The Pros of Building a data warehouse** **Total visibility on all sources:**Building a data warehouse allows you to pull in ALL your data sources from your entire ecosystem, including partner and vendor data. This will assure you a true 360-degree view of your business and ecosystem bubbling even the lowest regions of the iceberg up to the surface. **Increased performance:**By having a dedicated data warehouse in which to run your reports, your applications won't be blocked by locks of complex queries generated by various reporting tools. This will boost the overall performance of your applications, as well as the rate at which you can generate your reports. **Set it and forget it:**Yes, all databases need management and maintenance, but you will have far fewer developers or "hands" in your data warehouse once it is fully configured. You can also anonymize data in your warehouse, removing key identifiers to minimize compliance or internal risks. **Customizable:**When you choose to create your own data warehouse- the sky is the limit. You have complete control over what goes into your warehouse- how it looks, how you interact with it, etc. **The downside to building a data warehouse** **Slow Data Loads:**If an organization has huge amounts of data to process and load into the warehouse. Extracting, transforming, and loading the data takes time and system resources, so assessing this and ways to mitigate the effects matters most. **The disparity in source system:**A data warehouse is only as good as the incoming data, so issues in the root databases or sources can propagate to the warehouse. The bigger issue is that organizations may not see, or catch this, for years. **Time to build:**If you need reporting and insights NOW, then starting with direct database integration is probably your best bet. It takes time to properly develop the right warehouse strategy and platform to serve all your needs. **Cost:**Building a warehouse is an additional step with associated development, maintenance and potentially licensing costs. That said, in this solution, you are also investing in the future by creating a key piece of systems infrastructure that will serve you for a long time to come. If there's only one thing you take from this article- it's that regardless of which path you choose for data optimization, you're already moving in the right direction. Data is your company's most powerful asset in today's digital economy- let it do the work for you! **Next Steps** Determine your strategy and approach. If you have a thorough data team in-house, your next logical step is to begin meeting and strategizing with them on your approach and what is feasible today and in the future. If you don't have the expertise, you'll want to find a data/technology partner who can advise, strategize and assist. Data is too important an area to get wrong, so working with an experienced team of specialists will actually save you time and money, but most importantly, ensure the integrity of your data and maintain business continuity. To learn what the best next step could be for your company- chat with a member of our team! [**Contact us.**](/contact) ‍ --- ## Top Tips To Help You Find The Right Software Development Company URL: https://www.techfabric.com/blog/top-tips-to-help-you-find-the-right-software-development-company Date: 2024-10-23 Author: TechFabric Most small business owners don't have the finances to keep a stable of app developers on their payroll full time. In fact, that's too much even for some giant multinational companies. The good news though, is that you don't have to. There are a number of exceptional independent software development companies serving the needs of businesses of all shapes and sizes but finding the right one for your company in particular can be a tricky and often daunting task. How do you know which company is the best fit for your business? How do you know which one will best serve your needs? This article will attempt to take some of the mystery out of that process. Here are the top tips to help you find the perfect software development partner for you: **References Are A Must** If a company isn't willing to put you in touch with other companies who have used their services, that's an enormous red flag. If a company hasn't rolled out a new project recently, that's another huge red flag. This is pretty straightforward. Success breeds further success, and development companies that are good at what they do will have no problems giving you references. When they do, it's incumbent on you to check them. Do your due diligence. Dig deep and find out how the company you're considering working with solved the biggest technical challenges they faced on former projects and how they communicated with previous clients has been. **Experts vs. Jacks of All Trades** In addition to the above, the ideal company to work with is the company that has expertise in using the **tools and programming language** you mean to use to develop your own program or application. If you see a company that lists a dozen different languages and claims to have expertise in all of them, give them a pass. You want a company that focuses only on a few languages and tools, which is an indication that they have a broad and deep understanding of those tools. **Avoid Yes Men** This is a big issue, and you've probably heard at least one application development horror story. If you hire a company that says yes to absolutely everything you propose, be wary. A good development partner will have the courage to say no, and when they say no, you should listen to them. They are, after all, experts in developing applications in the language you plan to use. The danger of Yes Men is that they'll agree to your every proposal and every feature on your Blue Sky wish list, promising that they can get the work done on time and on, or under budget, even if some of the features on your Blue Sky list aren't practical and may have unintended consequences with the functioning of the application you're trying to develop. A good partner will spot these kinds of issues when you start talking about the feature set you want included, and be quick to say, 'No…that's not workable.' Or, 'No, that's not a good fit for what you're trying to do.' In addition to that, a true development partner will go further and tell you why a given feature won't work or is impractical and propose alternatives for your consideration. That's the kind of company you want to work with. A group that just says yes to everything is more interested in selling you something than they are in developing a quality product for your company. **Integration PLUS Communication** We mentioned communication earlier, and it's a crucial component of any successful partnership, but when it comes to software development, it's not the only element that matters. Clean integration is a very big deal. It doesn't really matter what project tools you use, but your ideal software development partner will use those same tools. The reasons are simple: It puts everyone on the same page from day one. It makes communication easier, more smooth, and ultimately more effective and efficient. Those are all good things. **No Language Barriers** This ties in with communication, which we talked about above, but is a separate point to consider. Given the realities of today's digital environment, it doesn't really matter where in the world your code team lives, but what does matter is that there's not a significant language barrier to overcome. After all, if you can't understand each other without translators, then it's extremely likely that something is going to be missed when communicating your expectations, or when cross-communication occurs between members of your team and theirs. In addition to that, having a common language will allow you to solicit and get advice from your code partners, and you want that. You should definitely be looking for more than just code work. You want your outsourced development team to be able to guide and advise you at every step along the way. **Frequent Incremental Project Deployments** This is an important one. You don't want to find yourself in a situation where you hand your requirements to the development team, then wait several months until you see something tangible from them. Ideally, you'll want to see [**something every week.**](https://medium.com/@adrienjoly/getting-a-software-product-done-using-an-agile-methodology-a3aa4afc77fd) There are a number of reasons for this, but the two biggest are these: First is that it speeds the overall development process and infuses the project with a sense of urgency that would otherwise be absent. Second, and every bit as important is the fact that when you can see the prototype coming to life before your eyes week after week, you can very quickly spot problems or potential weaknesses in the design, and can course correct mid-stream. It also allows you to spot potential miscommunications if the team delivers something during one of the weekly deployments that you had not expected to see. In both cases, the act of seeing tangible progress on a regular and ongoing basis makes the problem easy to fix. As we said at the outset, finding the right business partner to help meet your application development needs can be a daunting task, but it's well worth spending the time before the onset of your project to avoid disappointments down the road. ‍ --- ## Top 2021 tech trends in Supply Chain Management: Preparing for the revolution. URL: https://www.techfabric.com/blog/top-2021-tech-trends-in-supply-chain-management-preparing-for-the-revolution Date: 2024-10-23 Author: Leo Oliemans Leaders in the supply chain industry no longer consider new technologies as merely a necessary "means to an end." These systems are now considered vital because they are continually evolving, growing increasingly smarter and faster, and expanding their capabilities at unprecedented rates. Supply chain management strategies come and go, but the 2021 tech trends are shaping up to be the most revolutionary in several years as businesses prepare to reorganize for a post-coronavirus world. Forward-thinking organizations recognize the importance of digitalization exploitation as they consider new transitions to more innovative technologies, potential disruptions to conventional supply chain models, and other previously unforeseen challenges. ![Drawing of the logistics of a product.](/blog-media/ad03f633-64c3ab805e29b4b4cebf961d_22e17fa3-382c-4919-84d8-9bbeb68a60fd_601401ad85e0d941692d7a30_) To maintain and hopefully exceed their companies' current competitive advantages, the successful enterprises of tomorrow must instill a new corporate mindset today: one that accepts and embraces long-term or perpetual change. According to a [**recent survey**](https://financesonline.com/supply-chain-statistics/), the top technology priorities of supply chain professionals in 2020 are big data analysis, IoT, and cloud computing. Looking forward to 2021, Artificial Intelligence systems, robotic automation processes, blockchain technologies, and other technological advancements are topping the list. ### **1. Robotic Applications Processes (RPA)** According to a [**2020 Gartner report**](https://www.gartner.com/en/newsroom/press-releases/2020-09-21-gartner-says-worldwide-robotic-process-automation-software-revenue-to-reach-nearly-2-billion-in-2021), global revenues from RPA software are expected to soar to $1.89 billion in 2021, a whopping 19.5 percent increase from the previous year. Furthermore, supply chain experts forecast that RPA adoption will only continue to escalate by double digits well into 2024. The 2020 pandemic nearly brought several sectors of the global economy to their knees due to the supply chain logistical nightmare that immediately followed. However, organizations that had already adopted RPA strategies weathered the storm much more cost-effectively because these technologies help companies improve overall operational functionality by diminishing their reliance on human employees. ![Product/project workflow.](/blog-media/7ee4e10f-64c3ab80f59e8900f24b4f53_47d843af-46c7-4bb0-b0f9-02fd5c80815c_601401cc0d41540b701b3ff4_) ### **2. Intelligent Process Automation (IPA)** The heightened demand for RPA during the pandemic is causing technology leaders to search for other innovative methodologies to further safeguard their supply chains from future catastrophic events. The goal is to create and implement automation solutions that are the fastest possible, the most intelligent, and completely error-free no matter the potential threat. Intelligent Process Automation (IPA) combines the sophistication of Artificial Intelligence and the rules-based strategies of RPA with the trial-and-error educational capabilities of Machine Learning. In short, IPA is RPA on steroids. ### **3. Artificial Intelligence (AI)** As RPA and IPA technologies continue to attract widespread adoption, Artificial Intelligence or AI is emerging as a top 2021 tech trend in the supply chain industry, as well. By analyzing big data compiled from in-house operations of the past, AI algorithms can now quickly and automatically perform essential operational functions for today and well into the future. Machine learning can identify, understand, and even replicate complex patterns, content, and procedures with ease. Instead of employees wasting valuable time and money by performing repetitive administrative tasks, day-in and day-out, AI automation handles everything. To make AI adoption even more appealing, the Microsoft Power Platform offers an AI Builder feature in Power Automate that allows organizations to build, train, and publish AI models without the need to write a single line of code. ### **4. Blockchain technologies** Today's consumers are growing more reliant upon same-day delivery services, which can create logistical challenges for the typical business. By integrating blockchain technology with conventional supply chain management applications, organizations can expedite delivery by cutting out the middlemen. Blockchain technologies allow technology leaders to distribute digital data more quickly, transparently, and securely. Meanwhile, the Microsoft Power Platform with its Power Automate feature enables vendors, customers, shipping and logistics firms, and in-house inventory managers to coordinate cleanly and in real-time. Much like cloud-based data storage, the primary use of blockchain is for improved data transparency. However, due to its unique encryption and time-stamp ledger capabilities, blockchain is substantially more secure and completely incorruptible. Another top 2021 tech trend is the rise in public and government acceptance of cryptocurrencies as a preferred mode of payment. As cryptocurrency's popularity continues to rise, forward-thinking institutions are now recognizing Bitcoin, Ethereum, and other crypto coins as relevant legal tenders for customer payment options. ![Two hands connecting two pieces of a puzzle.](/blog-media/b05be2e2-66fda0f8fe8999b34ff96d68_64b80ee3ce8c2a3fa1b305b1_a1b91306-2231-436e-97c8-074f061652d1_) ### **5. Internet of Things (IoT)** IoT refers to the billions of physical gadgets around the world that interconnect with the Internet. From video doorbells that automatically film visiting guests to lightbulbs and home security systems that can switch-on from miles away using only a smartphone application, IoT technologies are being used by major companies more and more every day. For optimal supply chain management, companies are now using IoT-enhanced devices for location authentication of customer packages, quantities verifications of raw materials, and tracking the speeds at which their products and services arrive at their expected destinations. IoT devices can also help organizations identify problematic movement patterns during shipping processes and develop contingency routes in real-time. ### **6. Supply Chain as a Service (SCaaS)** While many companies today are still heavily reliant on in-house supply chain management strategies, industry experts predict a growing movement towards widespread SCaaS adoption starting in 2021 and throughout the coming decade. By outsourcing everyday administrative tasks associated with logistics, inventory management, packing, and delivery, companies save time and money through more simplified internal operational protocols. Integrating these SCaaS systems with AI, blockchain, and IoT technologies only enhance data and operational security, transparency, flexibility, and agility even further. Organizations can minimize supply chain disruptions, make faster and more precise market predictions, and enhance overall business continuity and productivity. Customer satisfaction levels also tend to show tremendous increases. And by tracking all related activities through the Microsoft Power Platform with its Power Automate feature, everyone in the supply chain stays up-to-date in real-time. ### **7. Internet of Things (IoT)** The Internet of Things, otherwise known as IoT, refers to the billions of physical contraptions around the world that interconnect to the Internet. From video doorbells that automatically film any visiting guests to lightbulbs and home security that can switch-on from miles away using only a smartphone application, IoT technologies are being used by major organizations more and more every day For optimal supply chain management, companies are now using IoT-enhanced devices for location authentication of customer packages, quantities verifications of raw materials, and tracking the speed at which their products and services arrive at their expected destinations. IoT devices can also help identify and resolve problematic movement patterns during shipping processes and develop contingency routes in real-time. To remain competitive in the fast-paced world of business and commerce, today's organizations must adapt. Top 2021 tech trends in supply chain management technologies like AI, RPA, IPA, blockchain, SCaaS, IoT, Microsoft Power Platform, and Power Automate will inevitably become the very backbone of the entire industry. ‍ --- ## Top 10 Mobile App Development Tips URL: https://www.techfabric.com/blog/top-10-mobile-app-development-tips Date: 2024-10-23 Author: TechFabric ![Hand holding an iPhone.](/blog-media/ffe522ae-64c3c2122eb5d2f54410245b_b3df5520-a5fd-44a2-a156-fabc2e25c725_techfabric-thumbnail-top-) ###### **Are you looking to develop a mobile app that users love? If so, read on to learn about the top ten mobile app development tips.** Mobile apps are bits of wonder in our digital universes. There are over 4 million apps and counting across the [**major platforms**](https://www.statista.com/statistics/276623/number-of-apps-available-in-leading-app-stores/) and they fill our lives with productivity, motivation, and entertainment. No matter how much we love them, not every app reaches gold star level. What does it take to build a successful app? Keep reading for the top 10 tips to mobile app development. ### **1. Have Clarity** To be successful in any endeavor, you must first know where you are going and why. App development is no different. You want to create your app so that it solves one singular issue. Create one experience that you want for your user and nail it. Don't give several options on the app and hope they pick right. Hone-in on the purpose and guide the user through that experience. ### **2. Create an App that Mimics Real Life** Mobile apps that mimic real life are smooth. They add to the user's real-life experiences. For example, a study app should reflect how people actually study. This way you can offer the best value to the user. When your app is valuable, users are more likely to remain loyal to it. You want to create for convenience. Including in-app analytics keep you informed on how your app is being used. This will help you keep improving over its lifespan and inform future apps. ### **3. Beta Testing** Your app should be immediately intuitive to the end user. If your app is confusing, users will trade for something better. Try letting a small group of potential customers try the app and record their feedback with it. This testing is critical to launching a successful product. After recording the app's challenges, go back and repair them. Then test again. Repeat this process until you have a strong product to present to the market. ### **4. Market Research** A huge part of having a successful app is knowing who the app is for. You should know what they like and where they congregate. Are they Android users? Do they prefer IOS? What are common issues that face your target demographic? Answering the right questions can save you hundreds of wasted hours and funds. When you understand your user's motivation's, you can tailor sales to them. This way, users are more likely to make a purchase. ### **5. App Store Optimization (ASO)** ASO is the process of optimizing your application in the app store. It drives traffic to your app and requires in-depth knowledge of your demographic. For instance, an important piece of knowledge is the keywords they are using. Knowing the search terms your audience is using is the cornerstone of getting found. The [**vast majority**](https://techcrunch.com/2013/04/17/forrester-app-discovery-report/) of apps are discovered through the search feature. Including a major keyword in the title of the app will drive downloads. Spend time researching the best words to avoid having to change the title of your app down the road. ### **6. Choose the Right Mobile App Development Team** Your app should be as free of errors as possible. To avoid headaches, choose a reliable mobile app development team. Evaluate your needs before choosing. Are you a complete newbie and need guidance? A full-service development team may be for you. They will walk you through the design, development, and marketing processes. Are you only in need of design or development? There are companies for you also. The main takeaway is that you spend ample time vetting prospective companies. The wrong fit could be [**disastrous**](https://www.daxx.com/article/outsourcing-horror-stories). You'll want to make sure any company you work with has a provable track record. ### **7. Keep Ads Relevant** Banner ads and pop-ups are a form of [**interruption advertising**](https://www.wordstream.com/blog/ws/2013/07/01/banner-ads). They quickly overstayed their welcome with the onset of the digital age. Ads are also a way to monetize your app if you don't have in-app purchase options. Nowadays, banner ads use relevant marketing. Cookies track users online activity. When they travel to other sites, it presents them with ads for things they are already searching for. For apps, the ads can be tailored to other apps the user might like. Be sure to keep ads as a functional part of the website. Overdoing it may inhibit the user experience. Unhappy end-users uninstall apps. ### **8. Plan for Use Across Multiple Platforms** Most people navigate through multiple devices in a day. You want your app to be smooth on a computer, tablet, and smartphone. Also, make your app available for IOS as well as Android. You don't have to do this all at one time. Start on one platform until it is up and running smoothly. Then slowly integrate others. You want your logo and brand to be recognizable across each platform as well. If a customer starts an order on the phone, they should be able to complete it on their tablet. Also, always be updating. Technology changes with the blink of an eye. You don't want to get left behind. ### **9. Plan for Offline Use** If you user hits a wifi dead-zone, you don't want them to lose all the hard work they've put in. Plan for offline usability while developing your app. This is an open area to explore and gain points with your audience. ### **10. Make it Visually Appealing** An app should be visually appealing but not overbearing. For instance, using to much text and texture in the design will not translate well. You can use typical design elements but keep in mind the platform it is for. Some things that look good on a computer screen may completely fail on a cellphone screen. ### **Developing the Best App** The best mobile apps have a plan. The market is just too saturated to go into mobile app development on a whim. A strategy based on research will propel you to heights of application success. #### **Contact us today to discover how we bring companies' app dreams to reality.** ‍ --- ## To Xamarin or Not to Xamarin URL: https://www.techfabric.com/blog/to-xamarin-or-not-to-xamarin Date: 2024-10-23 Author: TechFabric As the digital revolution rapidly expands across all business sectors and industries, Xamarin cross-platform mobile development becomes increasingly more in-demand. In fact, Forbes estimates that some sectors experienced a whopping ten years of growth in as little as three months during the pandemic. Meanwhile, over 80% of the world now owns a smartphone, compared to just 35% a decade ago. The importance of mobile application development cannot be understated. When implementing an overarching digital transformation strategy, consider the Xamarin platform for your mobile app frameworks. ## **Why Mobile Application Development Teams… and Businesses that Want to Lower Risk…Still Love Xamarin** ### **Lower Risk** Mobile application development is risky. From a user's perspective, the best apps are always reliable and behave as expected. If not, users tend to uninstall them rather quickly. Mobile app frameworks by Xamarin substantially lower development-related risks: - Reduces time-to-market - Reduces development costs - Provides numerous native app capabilities - Compatible with wearable technologies, like Apple watch - Increases rapid testing capabilities across multiple platforms - Provides built-in automated testing to gain higher-quality and more accurate user insights - Allows for quicker pivots with less code loss - Helps determine if native is necessary BEFORE full Xamarin development - Constantly growing developer base and community - Regular updates to maintain current industry standards and best practices - Numerous Xamarin case studies indicate a significant reduction in bugs and technical debt compared to other platforms. - Open-Source Platform Xamarin's open-source framework gives developers the flexibility they need to innovate the way they want without being locked into a specific proprietary system, code base, or developmental approach. Xamarin developers can also easily connect and integrate with other platforms while utilizing third-party code and services. Meanwhile, businesses gain a competitive advantage because Xamarin-based apps have the flexibility required to grow and change along with their business needs and digital ecosystem. ### **Cross-Platform Capabilities** When developing customer engagement strategies, most businesses require an app delivery method for both iPhone and Android users, which is where Xamarin excels. Using simple coding languages like C#, our Xamarin development team delivers an equally impressive user experience for iOS and Android users without the headaches, extra costs, and slower release cycles associated with separate native apps for each platform. ### **Rich, Expansive Feature Set** Xamarin is primarily known as one of the most powerful, cross-platform mobile app frameworks, but beneath this stellar reputation lies an extensive selection of additional innovative features, including: - Access and develop for native app features, such as push notifications, geolocation capabilities, phone dialer features, accelerometer abilities, and more - Pre-setups for just about every underlying iOS and Android SDK - Connectivity with all brands of iOS and Android smartphones and even wearable devices like Apple watch - Compatibility with platform-specific plugins like Google Play Billing - Allows for a wide array of third-party and reusable code - Modern Integrated Development Environment (Built into Microsoft Visual Studio) ### **Native App Features** There is a misconception that only native apps can use native iOS or Android features. This is an absolute myth. Xamarin provides the core functionality that end users expect. One of the platform's significant strengths is its ability to access native APIs for iOS and Android device functions with ease. Successful Xamarin development allows companies to send push notifications, access location services, activate the accelerometer, and so much more, all from a single app. ### **Faster Time-to-Market for Mobile Application Development** For company deployment of new digital products, speed-to-market is a critical factor of success and profitability. Using cross-platform mobile development frameworks like Xamarin allows businesses to outpace the competition by getting updates into their users' hands faster. And since it is an open-source platform, Xamarin developers have fewer bugs to fix, allowing engineers to spend more time developing new features instead of repairing defects. **Cost-effective** While Xamarin is uniquely designed for rapid development and deployment, its creators were clearly thinking about potential budgetary constraints, as well. Xamarin helps organizations get more bang for their buck by: - Offering a shared code base that dramatically cuts front and backend development time - Allowing for faster testing and pivoting to meet constantly evolving business needs - Leveraging Azure Cloud's all-in-one, easy-to-configure toolset and security suite - Reusing code, reducing defects, and leveraging third-party services for more efficient builds - Getting new apps to market faster, finding the best market/audience fit, and maximizing ROI simultaneously ### **Faster Reaction Times and Pivots** By definition, "Pivots" are unplanned, unanticipated changes to the overall market direction of an app or other digital product. Before Xamarin, these application "changes" were typically tricky and time-consuming to implement without completely restarting the project from scratch. Xamarin development, with its ability to share code across all major mobile platforms, eliminates these obstacles. With Xamarin, companies now rapidly develop and deploy app updates and repairs with little to no impact on the overall development timeline. ### **Optimized Rebuilds for Cross-platform Mobile Development** We are always ready to help with Xamarin projects that need a bit of rescuing. Compared to other mobile app frameworks, our expert Xamarin developers encounter fewer bugs with less technical debt, allowing for faster redevelopment that is far less stressful for your organization overall. While most software engineers typically dislike taking over another developer's code, the Xamarin platform allows for faster rebuilds, the easier reuse of pre-existing code, and enhanced rapid testing capabilities that make a rescue Xamarin project far less challenging for cross-platform mobile development teams and client stakeholders alike. ### **Easily Scalable Xamarin Development** For many businesses, including Fortune 500 brands, the scalability of applications is crucial. By utilizing Xamarin, an application can scale at a fraction of the cost needed to build separate native applications for each platform. And since changes are centralized into one codebase rather than being replicated separately on every device, scaling is quick and efficient. Meanwhile, the visual studio app environment streamlines the testing of various new cloud-based apps simultaneously. And Xamarin's tight bindings to iOS and Android SDKs combined with its access to native APIs essentially translates to new company apps that are future-proofed for both iOS and Android platforms. ![Reasons why TechFabric uses Xamarin.](/blog-media/eae04341-64b8260ece15c2ab9e172647_386601bf-8873-4d2d-8151-a16e0f080604_61bb6a194fbe650f6acc2004_) ## **The Future of Xamarin Cross-Platform Mobile Development** When building (or rebuilding) mobile apps, it's easy to be swayed by trending platforms or to feel pressured to develop native apps to "future-proof" your business. Those of us who have been in the trenches know that time-to-market, ability to pivot, cost-efficiency, reduced debugging times, and the ability to rapidly gain user feedback are the true components of long-term success and profitability. In the world of mobile application development, Xamarin is still king. Whether you're looking to begin a brand-new project or perhaps struggling with an existing one, partnering with the right Xamarin developers will save time, money, and frustration. To discuss the many possibilities of Xamarin Cross-Platform Mobile Development and other digital transformation services, [**contact TechFabric**](/contact) today. ‍ --- ## The Power of Data, AI and Digital Transformation URL: https://www.techfabric.com/blog/the-power-of-data-ai-and-digital-transformation Date: 2024-10-23 Author: Leo Oliemans Let us do a quick questionnaire explaining the differences between Digitization, Digitalization, and Digital Transformation. #### **1): A parts store converts the last five years' physical transaction papers into digital format.** A) Digital Transformation B) Digitization C) Digitalization #### **2) An Publisher offers a new feature to buy a book online instead of physical format.** A) Digital Transformation B) Digitization C) Digitalization #### **3) A Bank launches a multi-year program to convert its physical branches to fully digital and make them accessible over a mobile.** A) Digital Transformation B) Digitization C) Digitalization **Correct Answers: B-C-A** ## **How did I become so passionate about going digital?** During my professional career, I have worked mostly in the supply chain sector. We all know about excessive excel usage in companies building massive data sets and semi-automating it by VBA. Never the less it did impress me and showed me the power of data and automation. Convincing me that data and applying data is the future. I started playing around with business intelligence tools noticing my passion shifted from the Supply chain only to Supply Chain & Software. ![Picture of a city from the sky and lights making a circle representing planet Earth.](/blog-media/96c870f3-67117e98ad61f34b88b2c2f6_64b80ee42a0609afa7a7b68f_db2c7d8b-e25c-4a1f-b839-7ebff51c5f1b_) ### **The Power of Data & AI:** Power of Data: In 2009, a new strain of Influenza virus (H1N1) discovered. Data scientists from Google published an article in the magazine (Nature) explaining they could predict the spread of the winter flu on the country level but per region and even state level by looking at search engine hits for specific sets of entries. Looking at the frequency and correlation between several combinations of search engine hits. This Data-usage, to me, is a fantastic application of data usage. The fact that we can improve our way of control and knowledge. Just wow. (Source: The Big Data Revolution: Viktor Mayer-Schönberger & Kenneth Cukier). **Power of AI: DeepMind AI system Alpha Go won a five-game Go match against Lee Sedol, considered as one of the top players in the early twenty-first century. It was expected the AI would beat the human players at Go, but would still take another decade before this could be achieved.** Max Tegmark, Qoute/Source from book: Life 3.0 1. October 2015: "Based on its level seen... I think I will win the game by a near landslide." 2. February 2016: "I have heard that Google DeepMind's AI is surprisingly reliable and getting more reliable, but I feel I am confident that I can win this time." 3. March 9, 2016: "I was shocked because I didn't think I would lose." 4. March 10, 2016: "I'm quite speechless... I am in shock. I can admit that.. the third game is not going to be easy for me." 5. March 12, 2016: "I felt powerless." Within a year after playing Lee Sedol, a further improved AlphaGo had played all twenty top players in the world without losing a single match. **Ke Jie, the world's top-ranked Go player at the time, had this to say: Humanity has played Go for thousands of years, and yet, as AI has shown us, we have not yet even scratch the surface.** Quote from Book - Life 3.0 GO/wei-ch'i/baduk, one of the first strategy board game, originated from China around 4000 years ago. ## **What can digitalization mean to your business?** Digitalization can also decrease overall operational costs and further improve process efficiency of day to day processes. - Optimizing Procurement - Enhancing forecasting and demand planning - Digitizing manufacturing and assembling - Streamlining distribution and delivery Typical Benefits: - Relationships with customer - 4-5% Sales Growth - 2-3% Return on Sales - 10-20% Reduction or reallocation in marketing spend. - Product to market - 5-10% Procurement cost savings - 7-12% Supply Chain cost reductions - 10-15% of Manufacturing cost reductions. Support Functions - 20-30% Increase in efficiency back-office reduction (Radical reduction in service levels - days to minutes) - 50% Reduction in high performing employee churn. Digitalization can accelerate new product launches by accelerating the development process using the agile MVP approach and increasing the reach and access to target customers. Virtual R&D reduces costs and time to market by bringing the cross-functional team together, which results in faster and more productive R&D. Time to market has seen a 15% reduction, value to proposition 20% increase and Development cost 15% reduction. (Source: McKinsey & Abhinav Singhal) ‍ Time innovations needed to reach 50 million users. - Airlines 64 Years - Automobiles 62 Years - Mobile Phones 12 Years - Pokemon Go 19 days. ![Two hands connecting two pieces of a puzzle.](/blog-media/b05be2e2-66fda0f8fe8999b34ff96d68_64b80ee3ce8c2a3fa1b305b1_a1b91306-2231-436e-97c8-074f061652d1_) _Yes, just 19 days, you read that correctly. These are just puzzle pieces part of a much grander picture._ ## **How do I start working on digital transformation in my business?** First, it starts with finding the correct partner. **Source: Bain, Forbes: Stated that only 5% of digital transformation is fully successful. 5% Achieves or exceeds expectations. 20% Failed to deliver, producing less than 50% of the expected results 75% settled for dilution of value and mediocre performance. Only 30% invested deliver expected returns.** At TechFabric, we understand the challenges and apprehensions clients face in taking on the digital transformation partner. With our experience in implementing digital transformation, we have a structured methodology to keep our clients engaged and informed at every step. Our process starts with the initial 'Discovery' of Digital Transformation opportunity. During this strategy phase, we engage the business to understand the requirements from their customer's point of view and lay-out a road map for digital transformation. The objective & outcome of the strategy phase is to build out a Minimum Viable Product (MVP) from which clients can visualize the opportunities. Once the MVP is built out, we then create a road map for the complete digital transformation of the business, which results in significant improvement in sales and operational efficiencies of the business. ![A woman looking at a board with different styled graphs.](/blog-media/f3761f04-66fda0f8fe8999b34ff96d6d_64b80ee4d7dd5e27b09902a7_25653440-70ae-4c11-b57b-0a21bd5f58d0_) TechFabric specializes in creating digital products that integrate the most popular CRM(s) and build out scalable applications that meet specific niche business requirements. In the digital age, you may need much more than out-of-the-box functionalities to compete and thrive. You can rely on our reliable custom software development team for CRM development. Our analytical capabilities include machine learning and AI by certified developers. Reach out to the Tech Fabric sales team to learn more about getting the most out of your CRM initiative. --- ## The Next Generation Has Arrived: How 5G Will Accelerate Your Digital Transformation in 2021 and Beyond URL: https://www.techfabric.com/blog/the-next-generation-has-arrived-how-5g-will-accelerate-your-digital-transformation-in-2021-and-beyond Date: 2024-10-23 Author: TechFabric One of the most important things to understand about 5G is that you're talking about so much more than just another marketing term. Yes, it seems like every few years the telecom industry rolls out another buzzword, be it 3G or LTE or 4G and beyond, to tout newer equipment and faster speeds that are supposed to "bring people together like never before." But at the same time, the level of performance boost that 5G represents is significant, to the point where it doesn't happen very often at all. In the not-too-distant future, low earth orbit (LEO) satellite-based connectivity, mesh networks and similar assets will be used to deliver 5G connectivity to areas that currently only have limited, if any, coverage. At that point, large volumes of connected devices will begin creating and sharing information with one another, essentially at all times. Experts agree that peak 5G speeds are anticipated to be a massive 100 times faster than the current speed of 4G LTE networks. On top of that, reduced latency will allow support for newer applications that use advanced concepts like the Internet of Things (otherwise known as the IoT for short) and artificial intelligence. But most importantly, the increased capacity that 5G networks will bring with them can minimize or even outright eliminate a lot of the issues we deal with presently, from load spikes that take place during major news events to spotty coverage and more. All of this means exciting new things for consumers, yes and it's also going to make a particularly big impact on a business's ability to successfully execute a digital transformation but on the rate at which that transformation will occur. ![Graph taken from Ericsson Mobility Report.](/blog-media/f52425af-67117ecf8c9218ba482fb429_64c3bd1a94beeff20aa6317b_d45e0f90-28da-487e-9534-c07b4044bcfa_) _Source: Ericsson Mobility Report. By 2025 it's estimated that 5G will account for 45% of mobile data._ ### **Enabling a Necessary Disruption With 5G** At its core, digital transformation is the process of leveraging emerging digital technologies to modify existing business processes or customer experiences, while also capitalizing on opportunities to create entirely new ones. In other words, it's a way for business leaders to re-imagine the way they currently use IT, intentionally disrupting things to make sure that their technology infrastructure is properly aligned with both their changing business needs and the evolving market requirements around them. It's a misconception to assume that digital transformation is all about getting to a point where more things in your enterprise are digital. Far from it, it's simply empowering your ability to positively shift how you think, operate, learn and respond. It's putting you in a position to embrace change quickly for the benefit of your company and your customers alike. As the name implies, this represents a major change for most businesses, but it's also a necessary one, too. These types of digital transformation efforts are usually undertaken in search of new business models and, at the very least, new revenue streams. They're also usually driven by changes in customer expectations around products and services as well. Digital transformation has always been an important component of modern business, but it has become especially so during 2020 thanks to the onset of the global COVID-19 pandemic. According to one recent study, about 59% of IT decision-makers who responded to an IDG Research business impact survey said that pressures stemming from the pandemic were "accelerating their digital transformation efforts." Everyone knew at the beginning of the year that they would have to change to meet the demands of the future, it's just that nobody anticipated that this future would come along quite as quickly as it did. Thankfully, 5G itself is arriving at roughly the same time, acting as an invaluable resource for enterprises in the throes of evolution, but one that has the potential to be so successful that they may just come out all the better on the other side because of it. ![Graph taken from Ericsson Mobility Report.](/blog-media/4a659723-67117ecf8c9218ba482fb438_64c3bd1b0390b62c01ba2f6d_456c32c0-4cda-48b5-84f0-2d60f3f2aac4_) _Source: Ericsson Mobility Report. Mobile traffic is expected to grow by 31% annually between 2019 and 2025. Continuing recent trends, most of this will come from video traffic._ #### **Tomorrow's Technology Available to Today's Businesses** Remember that 5G offers predicted speeds of up to 10 Gbps per second, representing a significant increase over even the previous generation's technology. This is particularly relevant in terms of a company's digital transformation efforts because of the sheer volume of data that is being created, transferred and stored throughout this process. Whenever you move from one platform to another, a certain amount of data transfer is always going to be required. But with 5G, files that normally would have taken minutes to transfer will now be completed in a matter of seconds. Every second that your IT employees aren't spending monitoring files that are uploading or downloading is a second that they can focus on those matters that truly need their attention, thus accelerating your digital transformation dramatically, albeit in a very literal way. Another major advantage of 5G comes by way of its impressively low latency. For those unfamiliar, latency in networking is a measurement of how long a single data packet takes to go from its original source to its intended recipient and back again. 4G LTE networks had absolutely made some impressive gains to that end, but latency for newer 5G networks is anticipated to be as little as five milliseconds. This has the potential to be absolutely invaluable to digital transformation efforts, as this low level of 5G latency makes it possible for things like faster-than-human visual processing. This means that regardless of how many remote devices you're trying to control or even where they're located, you can still do so in near real-time from any device on Earth with an active 5G connection. Up until now, this was one of the major limiting factors with regards to the Internet of Things: the devices themselves were sophisticated, but it still took a great deal of time to control them. On top of that, a lot of new applications will be developed that will enable machine-to-machine communication. At that point, you can tap into the full potential of faster-than-human processing because you're largely removing humans from the equation entirely. But one of the most important ways in which 5G will accelerate digital transformation efforts comes by way of its enhanced capacity, something that ties into one of the most critical digital transformation services out there: the aforementioned Internet of Things. 5G can deliver up to 1,000 times the capacity of current 4G networks, offering support for literally hundreds or even thousands of devices that are all connected to one another, cleanly communicating at all times. One of the biggest examples of just how important this is comes by way of the use of the IoT in terms of business process automation in something like a factory. If your average factory has thousands of sensors on hundreds of different machines at all times, you always know which pieces of equipment are functioning at peak efficiency and which ones aren't. You always know exactly when you need to perform maintenance and take a machine offline to minimize disruption as much as possible. If something isn't performing the way it should be, you don't just know that a problem has occurred, you also know WHY, allowing you to take proactive steps to stop a small issue today before it becomes a much bigger one tomorrow. But once you know that the supply chain management process has been overhauled with business process automation, you also eliminate human error from the situation entirely. Everything is operating exactly as it should be WITHOUT human intervention, all so that your actual human employees can focus on those tasks that really need them. ![Screenshot of Microsoft's Dynamics ERP With Power BI Dashboard.](/blog-media/9dfa4a2a-67117ecf8c9218ba482fb42e_64c3bd1b9f9b36f668a4bb2f_92bc7899-b3d6-4052-868b-32e2453f30c4_) _Source: Microsoft. Dynamics ERP With Power BI Dashboard._ ## **The Big Data Factor** Of course, that's just a single-use case. The Internet of Things can also be used to fuel and accelerate digital transformation services in other industries thanks to the real-time analytics it can help unlock. Even your average business is already creating a massive amount of data on a daily basis (something that is only anticipated to grow as time goes on. According to one recent study, every person will generate roughly 1.7 megabytes of new information every second by the end of the year. More data has been created in the last two years than in all years combined up to that point. At a certain level, simply storing and managing that data becomes an enormous challenge for a company) to say nothing of how hard it becomes to actually extract the useful information inside that data just waiting to be uncovered. Why is that important within the context of 5G and digital transformation services? To speak to the former, it's because 5G is about to cause data volumes to virtually explode, seemingly overnight. With regards to the latter, 95% of all businesses already cite the need to manage unstructured data as one of the major risk factors for their own digital transformation efforts, which is only going to get more important as time goes on. Thankfully, 5G will also make it possible to embrace the types of business analytics solutions that organizations need to uncover the true story hidden inside all of that data. Predictive analytics, for example, can successfully predict future actions based on past trends. You could use your business's historical data to figure out what types of products your customers may be interested in based on what they've engaged with in the past, along with how likely they are to purchase from you again. Descriptive analytics can be used to dive deeper into the current state of your business than ever before, showing you information about audience demographics, interests and even purchasing behavior. Prescriptive analytics can even help show you the best course of action for any given situation that you find yourself in. You can take a look at how things are going seasonally, within the context of a product launch, or even year-over-year, all so that you can have access to the insight you need to make better and more informed decisions moving forward. So if business analytics is an invaluable tool in terms of a successful digital transformation, 5G takes things to the next level. 5G allows you to create more relevant and insightful data that can be shared faster than ever, but it also enables you to use those analytics tools to uncover that insight faster than you could have ever thought possible. So you're not just making better data-driven decisions, you're making them quicker than you would have been able to even five years ago. At that point, you're capitalizing on every opportunity for improvement available to you, rather than being forced to watch some of them pass you by. All of this can even help solve another one of the major pain points for most organizations going through digital transformations: staying on budget whenever possible. This is especially true for small companies, as budgets are usually tight and are carefully aligned to the scope of the transformation at the outset of the process. Therefore, using 5G-enabled business analytics allows you to maximize every dollar you're spending by getting to know your company better, anticipating the ever-changing needs of your customers and your industry, and bringing innovative ideas to your enterprise during a time when you desperately need them. This isn't just how you execute a successful digital transformation, it's also how you build a legitimate competitive advantage for yourself in your industry that will serve you well for years to come. As 5G carriers continue to expand coverage across 2021 and beyond, there will be a major, growing demand for real-time computation that depends on low latency at the end device. Everyone knows how important applications like industrial automation, virtual reality and even autonomous decision-making will be to the digital transformation process. But without high computation capabilities coupled with very low latency, getting to this position won't just be difficult. It will largely be impossible. Thankfully, 5G solves all of these needs and more, all in a way that allows companies to embrace adaptive design, to adopt agile execution and to bring about the positive level of disruption necessary to stand out in a crowd. 5G has the potential to positively transform both businesses and entire industries in ways that we're still really only just beginning to understand... creating an exciting situation that many will be paying attention to moving forward. ### The TechFabric Approach At TechFabric, we specialize in digital transformation services with a particular focus on developing the types of web, mobile and cloud-based applications that our clients have come to depend on. As a Microsoft partner, we've used our innovative blend of custom software development to support partners in just about every industry you can think of, from automotive to finance to retail, medical, supply chain management and beyond. We pride ourselves on our ability to act as a true partner to your company in every sense of the word: one that is every bit as invested in the success of your digital transformation as you are yourself. But more than anything, we pledge to use our industry expertise, our technological know-how and your business sense to transform your company's digital ecosystem in the precise way you need when you need it the most. If you'd like to find out more information about how 5G is poised to accelerate your digital transformation efforts in 2021 and beyond, or if you just have any additional questions about our custom software development services that you'd like to discuss with someone in a bit more detail, contact [**TechFabric.**](/contact) ‍ --- ## The Imperative of Durable Execution in App Dev: Unveiling Temporal's Framework URL: https://www.techfabric.com/blog/the-imperative-of-durable-execution-in-app-dev-unveiling-temporals-framework Date: 2024-10-23 Author: John Bellaud In application development, the pursuit of perfection is a never-ending journey. Every line of code, every algorithm, and every design decision contributes to the intricate mix of a software product. Yet, amidst the quest for innovation and efficiency, a fundamental principle often takes precedence: durable execution. Durable execution in software development refers to the ability of a system to perform its intended functions reliably and consistently over time, despite potential disruptions or failures. It encompasses resilience, scalability, fault tolerance, and adaptability, indispensable qualities in today's dynamic and fast-paced technology landscape. ![TechFabric-diagram-durable-execution-workflow-finance](/blog-media/3e26ba8c-66e20e1ba8558bb68018a0de_6644dfe168ed26c8b11bb222_82d41b4d.png) _*Simplified finance durable execution workflow (image source: https://keithtenzer.com/)*_ ## **The Significance of Durable Execution:** - **Reliability**: At the core of durable execution lies reliability. Users expect software applications to function flawlessly under various conditions, and any deviation from this expectation can lead to dissatisfaction and loss of trust. Reliability ensures that software consistently delivers the desired outcomes, fostering user confidence and loyalty. **‍** - **Resilience**: In an environment characterized by uncertainty and volatility, resilience matters most. Software systems must withstand unexpected failures, network outages, hardware malfunctions, and other disruptions without compromising functionality or data integrity. Resilient systems exhibit graceful degradation and recovery mechanisms, ensuring uninterrupted service despite adverse circumstances. **‍** - **Scalability**: As user demands evolve and grow, software scalability becomes imperative. Scalable systems can cleanly accommodate increasing workloads and user interactions without experiencing performance bottlenecks or resource exhaustion. Whether it's handling a surge in website traffic or processing large volumes of data, scalability ensures that software remains responsive and efficient. **‍** - **Fault Tolerance**: Errors and failures are inevitable in complex software systems. However, fault tolerance mitigates the impact of these occurrences by providing mechanisms for error detection, isolation, and recovery. By anticipating and handling failures gracefully, fault-tolerant systems maintain operational continuity and minimize disruptions, thereby enhancing overall reliability. **‍** - **Adaptability**: The ability to adapt to changing requirements, technologies, and environments is essential for long-term viability. Adaptive software architectures enable clean integration of new features, enhancements, and updates while preserving existing functionality and stability. By embracing change proactively, adaptable systems remain relevant and competitive in a dynamic market landscape. **‍** ### **‍ Introducing Temporal's Framework:** In the quest for durable execution, developers are increasingly turning to sophisticated frameworks and tools that streamline the implementation of resilient, scalable, and fault-tolerant systems. One such framework that has gained prominence is Temporal. ![TechFabric-diagram-temporal-application-flow-durable-execution](/blog-media/1b452dfa-66e20e1ba8558bb68018a100_6644dfe1c6ce431d356b156c_c850b31f.png) _*Temporal application flow at a glance (image source: temporal.io)*_ Temporal is an open source, stateful coordination platform that simplifies the development of resilient and reliable distributed applications. Built on the principles of workflow orchestration and state management, Temporal provides developers with a powerful toolkit for building complex, event-driven workflows with ease. ‍ ### **Key Features of Temporal:** - **Workflow Orchestration**: Temporal enables developers to define and execute coordinated workflows that span multiple services, processes, and asynchronous tasks. By modeling business processes as workflows, developers can maintain clarity, consistency, and reliability in complex distributed systems. ![TechFabric-Temporal-Durable-Execution-Framework-Application-Workflow-Management-Screenshot](/blog-media/ae948a6c-66e20e1ba8558bb68018a0d8_6644dfe1b40756b8107cad5c_ead2fd89.png) _*Temporal workflow setup & management (image source: temporal.io)*_ - **State Management**: With Temporal, developers can manage and persist workflow state cleanly, ensuring durability and fault tolerance. By decoupling state from application logic, Temporal enables resilient execution and graceful recovery from failures without sacrificing performance or slowing scalability. ![TechFabric-diagram-temporal-application-state-management](/blog-media/e25521fd-66e20e1ba8558bb68018a0e1_6644dfe129d2f7cc065a9f31_dffcf795.png) _*Temporal state management at a glance (image source: temporal.io)*_ - **Temporal SDK**: Temporal provides a ready-made, comprehensive software development kit (SDK) for multiple programming languages, including Go, Java, and Python. The SDK offers high-level abstractions, reliable APIs, and built-in support for distributed coordination, making it easy for developers to integrate Temporal into their applications. ![TechFabric-Diagram-Temporal-Durable-Execution-Framework-SDK-architecture](/blog-media/f068d069-66e20e1ba8558bb68018a106_6644dfe185e2e3cef14e96b8_01ee1db5.png) _*Temporal sdk architecture (image source: temporal.io)*_ - **Event Sourcing**: Temporal embraces the event sourcing pattern, enabling developers to capture and replay domain events to reconstruct application state deterministically. By leveraging event sourcing, developers can achieve auditability, consistency, and fault tolerance in distributed systems while minimizing complexity. ![TechFabric-Temporal-Durable-Execution-Framework-Event-Driven-Architecture - Diagram](/blog-media/8c4eab38-66e20e1ba8558bb68018a103_6644dfe172b7d373c52d9140_f93103b2.png) _*Temporal event-driven application architecture (image source: temporal.io)*_ - **Distributed Coordination**: Temporal handles the complexities of distributed coordination transparently, allowing developers to focus on business logic rather than infrastructure concerns. Through its decentralized architecture and fault-tolerant design, Temporal ensures reliable execution and high availability in distributed environments. **Key Takeaways:** In software dev, durable execution is an essential component for ongoing success rather than a nice-to-have. The fact is resiliency is the Holy Grail of our entire industry. Without a resiliency framework in place, systems must be constantly monitored by dev teams ready to waste oodles of time investigating and repairing faults and failures that can occur at any time. Make no mistake, this is not an issue with the code. Failures are part of any system, especially when dependent on 3rd party integrations and services, which just about every application is today. The reality is many organizations are so used to this norm they don't even realize there is a solution. Using Temporal's advanced framework, developers can do what they could not before; create "bulletproof" applications that enable systems to auto-recover from outages no matter where they occur in the workflow. Whether it's orchestrating fault-tolerant workflows, managing state effectively, or handling failures gracefully, Temporal doesn't just empower developers to build better applications, it stops the nightmare of system outages and broken processes giving organizations the confidence their applications will quickly recover without any manual intervention whatsoever. --- ## The Effects Of Cypress Component Testing On Your React App URL: https://www.techfabric.com/blog/the-effects-of-cypress-component-testing-on-your-react-app Date: 2024-10-23 Author: Ihor Seleznov ## Overview Everyone has their own thoughts and expectations about building an appropriate quality assurance process for a project within a reasonable amount of time. But at least, I think we can agree that every project manager, product owner, or the client themselves wants to release the product with a minimal number of issues. In our endeavor to support quality, we can involve different professionals. However, today we'll review an additional effort that developers and/or automation engineers can bring to the product, to make it more stable and reduce expenses on bug fixing after the product is released. To get closer to the point, we will review what component testing is. Then, we build a simple React-based application and create component tests using Cypress. React and Cypress are used just as examples of quite popular technologies. In the real world, we will work with what we have. ‍ ## The Plan 1. Component testing 2. Build out a simple React application. 3. Set up component tests using Cypress. If you don't want to spend time creating react app, and just want to see code example, find it here: [github](https://github.com/efet11/Techfabric.CT) ‍ ## Component Testing Component testing checks the functionality and looks for defects in parts of the application that are accessible and can be tested separately (program modules, objects, classes, functions, etc.). And that's great because by checking these parts, we can identify the problem as early as possible. If you take a quick look at the Testing Types Pyramid, you may notice that component testing lies at the bottom, forming the foundation of the pyramid, just one step above unit testing. In the pyramid, component testing is represented by a tree, and this is not done without reason. As every man should plant a tree, build a house, and raise a son every developer should do everything he can to implement client's idea with a minimum number of problems, and I believe this wish also has 3 steps: use unit testing to cover your functions, add one more layer to check the whole module, object or class and cover the app with UI / API or E2E tests. In fact, for the last part, we don't have to 'build the house' on our own; we can hire QA Engineers for this. ![](/blog-media/0c9649f3-65ce71eb9ca190a72ee4b5bf_TF-blog-testing-types.png) ### Testing Details Component testing is conducted by invoking the code that needs to be checked and with the support of development environments, such as frameworks for modular testing or debugging tools. All defects found are typically corrected in the code without formally describing them in the bug tracking system. Essentially, component and module testing represent the same thing; the difference lies only in that in component testing, real objects and drivers are used as parameters of functions, while in modular testing, specific values are used. Well, I hope you've got an idea of component testing, and we can start building our application and tests. ‍ ## Create REACT Application Let's start with creating React App: **1. Start command prompt (cmd) at the working directory.** **2. Using cmd write command to create React App:** ``` npx create-react-app %appName% ``` ![A screenshot of a computer programDescription automatically generated](/blog-media/5a83f529-c3be6276.png) _Create React App Code_ **3. Using IDE (like VS Code) open your React application** **4. Using IDE add .env file with a free port into the root of the project:** ``` PORT=4000 ``` ![A screenshot of a computerDescription automatically generated](/blog-media/58c50de7-65cbeb19f8ea115dc69e9215_158a2a0c.png) _Port = 4000_ **5. Using cmd switch to your project's directory** **6. Using cmd start your app via npm start command** ![A black background with white textDescription automatically generated](/blog-media/83dc19df-b355103b.png) _Start Your App Via NPM Start Command_ Now you should see React Application running at your localhost:port ![A screen shot of a computerDescription automatically generated](/blog-media/55b2249b-65cbeb83769a9f3a3573c30c_ab464521.png) _React App Running_ Since we have an empty React application, we should add a couple of component examples for our testing needs. **1. Start with creating components folder with UserProfile and EditUserProfile files.** ![A screenshot of a computerDescription automatically generated](/blog-media/2af45c7b-65cd31d207b8f16fe521635f_615954a7.png) _Create Components Folder_ **2. Add some data to UserProfile function:** ``` export default function UserProfile({ user, editCallback }) { return ( ## First Name: {user.firstName} ## Last Name: {user.lastName} ## Email: {user.email} Edit ); } ``` **3. In this simple example EditUserProfile should be a bit more complex, here we can handle callbacks and states:** ``` import { useState } from "react"; export default function EditUserProfile({ user, completeCallback = () => {} }) { const [firstName, setFirstName] = useState(user.firstName); const [lastName, setLastName] = useState(user.lastName); const [email, setEmail] = useState(user.email); function handleCancelClicked() { completeCallback(null); } function handleSaveClicked() { completeCallback({ firstName, lastName, email }); } return ( <> ## First Name: setFirstName(e.target.value)} /> ## Last Name: setLastName(e.target.value)} /> ## Email: setEmail(e.target.value)} /> Save Cancel ); } ``` **4. And the last part, let's update App.js file to complete our tiny user profile** ``` import { useState } from "react"; import "./App.css"; import UserProfile from "./components/UserProfile"; import EditUserProfile from "./components/EditUserProfile"; function App() { const [editMode, setEditMode] = useState(true); const [firstName, setFirstName] = useState("John"); const [lastName, setLastName] = useState("Doe"); const [email, setEmail] = useState("john.doe@techfabric.com"); const savedData = { firstName, lastName, email }; function handleEditComplete(result) { if (result != null) { setFirstName(result.firstName); setLastName(result.lastName); setEmail(result.email); } setEditMode(false); } return ( {editMode ? ( <> Edit User Profile ) : ( <> View User Profile setEditMode(true)} /> )} ); } export default App; ``` **After the work completion we can play with a simple User Profile running in our App:** ![A screenshot of a computerDescription automatically generated](/blog-media/76850d99-65cd333f314edaa0b8bc2a4f_74ec797c.png) _Edit and View User Profile_ **Finally, we can start component tests creation!** ‍ ## Cypress Component Testing We've chosen Cypress as an example of a framework that we can use for component testing because nowadays, Cypress is one of the most popular JavaScript/TypeScript frameworks that is quite often seen in projects where React is used for front-end development. Let's begin setting up the component testing: **1. Start command prompt (cmd) at the working directory.** **2. Using cmd add cypress to the project via command:** ``` npm install cypress -D ``` ‍ ![A screen shot of a computer programDescription automatically generated](/blog-media/804b2554-8d595e28.png) _Add Cypress To The Project_ ‍ **3. Using cmd start cypress via command:** ``` npx cypress open ``` ![A screenshot of a computerDescription automatically generated](/blog-media/18484384-65cd380b73d5963090734f87_f417dbd7.png) _Welcome To Cypress Landing Screen_ **4. Choose Component Testing** ![A screenshot of a computerDescription automatically generated](/blog-media/f4cda4fb-65cd38484eeb1b55644389fe_017f9b6e.png) _Project Setup_ **5. Select Front-end framework (in our case it's React App) and click Next** ![A screenshot of a computerDescription automatically generated](/blog-media/9647de58-65cd386e70307538cc40ad74_cad9d5ea.png) _Install Dev Dependencies_ **6. Continue on install dev dependencies screen** ![A screenshot of a computerDescription automatically generated](/blog-media/e3530987-65cd38a1e51076ea3c8640bf_b1e36bef.png) _Configuration Files_ **7. Continue on file configuration** ![A screenshot of a browserDescription automatically generated](/blog-media/570e93c2-65cd38dfb3cd19b4d3df7581_4156f8d8.png) _Choose Browser_ **8. Start Component Testing in chosen browser** **9. Now we can create spec from component or just a new one** ![A screenshot of a computerDescription automatically generated](/blog-media/bf8d2598-65cd39096bcbcb7f80a63ea2_39ab9b07.png) _Create First Spec_ **10. Let's create a spec from UserProfile component** ![A screenshot of a computerDescription automatically generated](/blog-media/4cf4950f-65cd440e763a1b7949452c33_02da6757.png) _Spec Created Successfully_ Now we can see cypress file with tests located near your selected component. ![A screenshot of a computerDescription automatically generated](/blog-media/b5685e65-65cd445347859482c9dcc840_3f7c182c.png) _Selected Component_ #### Add UserProfile Component Test: Let's pass user object and check the contact shown on the page. ``` import React from "react"; import UserProfile from "./UserProfile"; describe("", () => { it("user data is populated in UserProfile", () => { const user = { firstName: "John", lastName: "Doe", email: "john.doe@techfabric.com", }; cy.mount(); cy.contains("h2", "First Name:").parent().contains(user.firstName); cy.contains("h2", "Last Name:").parent().contains(user.lastName); cy.contains("h2", "Email:").parent().contains(user.email); }); }); ``` ![A screenshot of a computerDescription automatically generated](/blog-media/5d3f322e-65ce65f101292edb53d09b03_94c40c44.png) _Add UserProfile Component Test_ **Add EditUserProfile test:** ``` import React from "react"; import EditUserProfile from "./EditUserProfile"; describe("", () => { it("completeCallback is called on save data for user object", () => { const user = { firstName: "John", lastName: "Doe", email: "john.doe@techfabric.com", }; const completeCallbackSpy = cy.spy().as("completeCallbackSpy"); cy.mount( ); cy.get("[data-cy=save]").click(); cy.get("@completeCallbackSpy").should("have.been.called"); }); }); ``` ![A screenshot of a computerDescription automatically generated](/blog-media/4d64e541-65ce69728dcd74a85cc48329_05efa4f9.png) _Add EditUserProfile Test_ ## Conclusion As you might notice, it's quite simple to cover existing components with tests, and this small step, done by an Automation Engineer or Developer, can be a significant improvement for the project's quality assurance. Which will help to shorten the delivery time and reduce the defects that can arise later. --- ## The Crucial Role of UX Research in Solving the Right Problems URL: https://www.techfabric.com/blog/the-crutial-role-of-ux-research-in-solving-the-right-problems Date: 2024-10-23 Author: TechFabric At TechFabric, our "User-centric" approach emphasizes early incorporation of UX Research in our development process. Let's look at why and how we do this. ### Why is UX Research Important? Research is crucial to the process as it reveals unforeseen obstacles, overlooked pain-points, and pitfalls that may arise during development and after launch. UX practitioners often discover more challenges than organizations anticipate, which can be mitigated by implementing research methods upfront before a project begins. **UX Research has other benefits including:** - Generates user-centric solutions coupled with business needs - Helps product owners prioritize features for road mapping - Keeps stakeholders aligned during ideation - Identifies REAL and not fabricated or perceived user needs ‍ ### How does TechFabric conduct UX Research? We follow a concept and methodology called "Design Thinking" to help our clients solve user problems and develop solutions for digital products. **Design Thinking has 5 major steps including:** - Empathy - Understanding User Needs - Define - Narrowing Down The Problem To Be Solved - Ideate - Exploring all possible solutions - Prototype - Build a working mockup of the solution - Test - Getting feedback through user testing ‍ This methodology is effective but potentially confusing for clients, can be loosely applied without alignment among team members and stakeholders. TechFabric's diverse clientele makes full implementation challenging. To simplify, our product teams adopt the **"Double Diamond Model"** from the [UK Design Council](https://www.designcouncil.org.uk/our-resources/the-double-diamond/). ‍ ### Using The Double Diamond Model As A Framework. ![](/blog-media/582931b6-65a5b73045ebba6fede161e7_techfabric-blog-ux-research.png) The Double Diamond Model is broken into **two phases or "spaces"** as we call them. The first being the "Problem" space where we conduct research to identify the criteria needed to form a "Problem Statement". This problem statement is based off research findings and unexpected signals that become the "right" problem to solve. The Problem space has two distinct steps, the "Discover" and "Define" phase. ‍ ### **The Ketchup Example** In the UX community we often hear about the ketchup bottle example where the glass bottle is often regarded as "UI Design" and the new innovative upside-down bottle is "UX Design". We'll use this example to help illustrate why UX Research is important. ‍ ![](/blog-media/f064c809-65a5a094469aed4575666ba8_techfabric-user-centered.png) _The evolution of ketchup bottles_ ‍ The classic ketchup bottle, a timeless design on the left, served its purpose for years. However, the common struggle of slapping the bottom for ketchup led to a new design that addressed this symptom. Yet, the middle design skipped identifying the real problem and only solved one symptom without addressing systemic issues around the glass ketchup bottle. ‍ ### The Problem Space In the Problem space's Discover phase, **we use exploratory research to identify user needs**. Project stakeholders, including TechFabric UX researchers, diverge to explore all potential problems or pain-points.. The research methods include: - User Interviews - Talking to users directly - Field Studies - Observations to understand how users work - Diary Studies - Analyzing customer service data & analytics ‍ ![](/blog-media/a12d4da1-65a573abd88b6a177cd3c3a9_techfabric-blog-ux-research-problem.png) ‍ In the Define phase, **stakeholders converge to create a problem statement**: a narrative addressing key issues to solve. This can involve features, technical debt refactoring, or even a concept for a new product offering. The analysis produces the following: - "Signals" or patterns from research findings - Ideas to consider during the "Solution" phase ‍ ### **The Ketchup Bottle Problem** Following the Double Diamond Method, researchers identified ketchup bottle issues like "ketchup juice" accumulation and unpredictable application. Considering all user pain-points helps product teams address the actual problem: the bottle itself. The old glass bottle's rigidity and vacuum effect caused these symptoms. ‍ ![](/blog-media/b7303e13-65a5a2a91cf5628f65011c36_techfabric-doublediamond-problem.png) ### The Solution Space In the "Develop" phase of the Solution Space, we use **"Evaluative" research methods** to test potential solutions based on signals from our exploratory research. As a team, we "Diverge" to conceptualize ideas for solving the problem, testing various approaches with users using simple methods like: - Usability Tests - Testing Wireframes & User Flows with targeted users - Tree Tests - Testing the organization of navigation and menu categorizations ‍ ![](/blog-media/fb19ca87-65a573c4b057f588fab68fc3_techfabric-blog-ux-research-Solution.png) ‍ In the "Deliver" phase, the team converges on the right solution by analyzing test results for intuitiveness and stakeholder input. TechFabric collaborates with clients to define post-launch metrics, focusing on **"Usefulness" (Utility + Usability)**[**Nielson Norman Group**](https://www.nngroup.com/). We prioritize providing the right functions and ensuring they are intuitive and pleasant for modern users, making the solution truly useful. ‍ ### **The Ketchup Bottle Solution** In the ketchup analogy, by exploring multiple ideas, a product team provides varied solutions for user testing. **Tests like "usability" and often "tree" tests reveal patterns in user feedback**, guiding the definition of the right solution. Taking time in the "Problem" space, instead of rushing into "solutioneering" or the "Solution" space, yields different outcomes. Using UX Research with the "Double Diamond Method" results in better adoption, global system optimization, and significant efficiency gains, providing a comprehensive solution. ‍ ![](/blog-media/c843cc35-65a5a42d18cf377e3c33ded6_techfabric-doublediamond-Solution.png) ‍ ### Key Takeaway Through the Double Diamond Method, we often **uncover unexpected problem statements**, diverging from initial assumptions. Addressing this requires buy-in and alignment from stakeholders who tend to rush into the Solution Space, a practice known as "solutioneering" in UX. Incorporating UX research in project timelines and budgets helps avoid roadmap pitfalls, technical debt, and strategy pivots, ensuring we identify the right problem to solve. --- ## The Best Tips From TechFabric To Work Remotely URL: https://www.techfabric.com/blog/the-best-tips-from-techfabric-to-work-remotely Date: 2024-10-23 Author: Alyona Beliashova Nowadays, the whole world is fighting with the big disaster**―**COVID-19, virus that has turned everything upside down. To prevent the disease from spreading and keep the working process head above water, the majority of IT companies worldwide have determined to work remotely. Our company was not an exception. Well, it sounds weird, but it is not so awful as we assumed! The working process is still alive. Moreover, it spreads ahead because of the employees' devotion to the prevailing positive outcomes. Customers get all the necessary products and features without expired deadlines, and we don't feel that a global collapse can be nearby. How have we accomplished such a significant effect? In the following article, we will share with you some of our corporate secrets, and who knows, maybe it might also help you! ## **We Do Live The Same Lives** ![Woman making the peace symbol.](/blog-media/8eb320d2-64c3c2b036a1398dbdc551b3_96031d81-3b05-4b57-b86b-b4753320905c_5ee73f1fe1097e5108f625cd_) The best way to stop panicking and start working productively is to lead the same lifestyle you used to do before a quarantine and exchange your activities within the company. For the small corporations, it is easy enough to arrange a special Rest-Chat in any convenient often used messenger, and share your activities with the whole team. If earlier you woke up at 7 am on weekdays and finished working at 7 pm (our schedule is slightly shifted due to the different geography of team members), you should continue to do it at home! Besides, don't you dare to forget doing morning exercises and cooking delicious breakfast. Our organism remembers the actions we usually perform when we are happy, busy, or excited so that if we achieve the same set of habits, you will never know what remote work depression is! Here is the [**video**](https://www.youtube.com/watch?v=AIPsB9WHjX0) you will see all the everyday morning habits that make your day bright and make you feel as if you are going to office as usual. ### **We Organize Remote Coffee Breaks** ![Coffee cup.](/blog-media/515c264b-64c3c2b037746c2f81165119_97d7253a-7df0-4e1d-be8b-11eed5c4065c_5ee73f201bd49d8abbe5d51c_) For the little corporation, it is pretty easy to get together on the call, and consider burning issues and news, share judgments regarding a popular film, a TV program. In TechFabric, we get together every Friday after lunch and just smile at each other and forget for twenty minutes about all the troubles around. ![Group conference call coffee break.](/blog-media/5982295e-64c3c2b0b9dea6735d8a95c4_d3af22eb-c6d2-41c6-aa22-42f6e8ae35e8_5ee73f1fb806081d471a318e_) Indeed, we do charge relaxing calls, but all our digital meetings take place as usual, yet today it is much more vital to concentrate on the moral state of your employees and take care of them as well as you can! ### **We Upgrade Our Knowledge** ![Scrabble game.](/blog-media/868458f8-64c3c2b0f0a26fa2dfa2dcab_b34aa3f3-5989-4342-a3fa-9faf217bffa2_5ee73f1f51928b689183b632_) Remote work is an excellent opportunity to get better knowledge, train your skills, and do the tasks you couldn't fulfill before because of the constant hustle and bustle. Why not establish a particular refresher course for the corporation employees to upgrade their motivation and get a much more expert team? With high technologies, you are even not expected to leave your house! In our team, we do engage numerous educational resources to cope with the current IT trends and be aware of all the latest events. Webinars, digital games, and other projects are in hand today. Being a Microsoft partner, we have launched a process of our employee's new skills approval with the help of Microsoft certifications and exams. It is hard enough. However, the guys are currently doing their best! Besides, we help each other to deal with the remote scope of work, remind us about essential working items, update the data, and push all our powers to interact as much as we can. ### **We Remember About Remote Tricks** ![Drawing of person and their shadow.](/blog-media/82f33670-64c3c2b071acebbfdd56708a_218d2c22-9ffd-4379-b867-9e7f4a30eed4_5ee73f1fc940bcfe475dbc23_) If you are currently working remotely, you can think that it has more benefits than drawbacks, although you can be wrong. You might neglect hidden underwater stones of remote work, such as self-management, problems with the Internet, everyday chores that you also should do, etc. As a rule, while you are working at home, you don't need to waste your time on transportation or extra coffee break; as a result, you regularly work and lose your productivity or even burnout. Yet, be attentive, and do not hold in mind that when a quarantine finishes, you should be ready to continue working in the office the same as you used to do before. In the following [**video**](https://youtu.be/gDFdHnkohLg), you can see all the drawbacks of the remote work and also managemental peculiarities, so we do our best not to be at the edge of the professional collapse! Well, as you might have already comprehended, you don't need to control your remote workers so much. It will bring you neither respect nor credibility. You should vice versa provide them with your sympathy and understanding way of management. If they see your readiness to assist the working process, they will give a 100% positive result. ‍ ### **We Give Sympathetic Consideration To Each Case** ![Group of people sat outside chatting.](/blog-media/916b4f96-64c3c2b183afb62ec615d9d5_28c82993-a92f-429b-b9ba-aed4a548d282_5ee73f1f0bfdcb3207921b31_) There is no point shouting at your employees because they can't set up a Skype on the new PC, their working productivity is a bit lower in a remote mode, or their children are playing too loudly next door. We do understand all the inconveniences you face while you are working remotely. In our collective opinion, corporation is one more family with its peculiarities, useful, and weak points. Thus you should be more tolerant towards each other in such hard times. Working in the office delivers its particular results. However, remote work shows precisely to what extent this or that team member loves the deal he/she fulfills, how much your employees can be self-motivated and organized, and lots of other points are enlightening during the quarantine. Such outcomes can assist organizations in thinking twice before hiring a person who can't manage their own time or else. Everything is about to a degree. ‍ ### **We Hope For The Better And Do Our Best** ![New plant growing in the concrete gap.](/blog-media/d73cd39e-64c3c2b111631da97fc1c3bc_b45a5b13-1e99-4b34-999c-65ffc620ffb6_5edf8789a21d1116ccee4fe1_) Despite all the troubles and uneasy thoughts swarming in our heads, we do expect better times. Nowadays, we struggle with a challenge, and our key goal is to come out from this trial with minimal losses. Our main principle is to positively influence those things that we can really influence. Thus, the main hint from our corporation on how to work remotely with the best results is to stay positive, put maximum effort into the work, develop your professional skills, spend free time with your beloved ones, and not panic! As soon as you keep calm, the situation will change for the better! ‍ --- ## Temporal: Airlines Booking Demo Application URL: https://www.techfabric.com/blog/temporal-airlines-booking-demo-application Date: 2024-10-23 Author: TechFabric ## Airline Application Proof of Concept At TechFabric, we always strive to develop better, more efficient, and reliable software. Through years of experience, we try new techniques, new frameworks, and new tools to make software development more efficient and produce better software. In this blog post, we share our experience creating a proof-of-concept application with Temporal, a framework for building reliable and stable applications. We decided to use an airline ticket booking system as a concept because it sounded challenging, with edge cases like returning tickets and delayed flights. Before diving into details, let's first go through some theory: ‍ ### Retry Policies Let's try to break down the approach to writing stable code according to the stages of its evolution: A naive approach to calling a web service, one that we might use as a starting point, is to just create an *HttpClient* and .*Send* a message. That's easy, fast and straightforward. Later, having experienced various situations when the server crashed or the database went offline, developers realized that any operation could fail. A developer's next step might be to wrap all the code in a try/catch block, but we'll skip past this, and move on a little further - to the point where we start using things like Polly (resilience and transient-fault-handling library that allows developers to express policies such as Retry, Circuit Breaker, Timeout, Bulkhead Isolation, and Fallback. This allows us not to think too much about what will happen if one of the servers suddenly falls off for a couple of minutes. We can be sure that Polly will simply retry the operation again within the defined policy. Polly solves a lot of problems and could be sufficient to make most of the applications stable and fault-tolerant. ‍ ### Event Sourcing But what if the service suddenly dies for a few days? What if some interruption in our storage causes data to become corrupted and we won't know which records are broken and which are not? Such cases usually require a special approach for each specific case. But some techniques make it easier to restore systems even in such difficult situations. One such technique is called "Event Sourcing". Its idea is that each action in the system is defined as an event or a set of events. All events are stored in a special event storage and replayed upon request to reconstruct the state of a business entity. Thus, the typical shopping cart object for such examples is not stored on its own with its properties like items and *totalPrice*. It is stored exclusively as a chain of events like *item_added*, *item_quantity_changed*, *item_removed*, and is reconstructed every time it is needed for any business processes. This technique is very difficult to develop and has many disadvantages, but it gives you flexibility with changes and can easily restore the chain of events in case of problems with the system. Combining retry policies with event sourcing to create a durable execution framework Having both aforementioned things in mind (Polly, with its retry policy, and Event Sourcing), it becomes obvious that the next step in building solid and stable systems will be the ability to combine both approaches, retry policy and event sourcing. Making a framework that would allow us to define steps or actions to perform, and would ensure that each step is executed successfully by retrying it in case it fails. Additionally, each step and details about its execution would be stored as an event-sourced stream. That means that at any point in time, we will be able to see the current step, see how previous steps are completed, and even replay the whole process from the beginning or a specific step! That's what Temporal is, and in Temporal terminology that's a Workflow. Executing Workflow steps (actions) in such a way is called [durable execution](https://docs.temporal.io/temporal#durable-execution). See the extensive features of Temporal in action: View The Demo App ![](/blog-media/456f6507-Vectors-Wrapper.svg) ### Changing The Mindset The concept sounds great but introduces a completely new way of building the applications. Here, we would like to share some of our findings when building the flight ticketing system. The first thing that one should do is to re-visit the approach to architecture and develop a skill to map every business process to a Workflow. ‍ ### Everything is a Workflow A user can purchase a ticket, go to the airport, hand over the luggage, and register at the gate. Usually that maps to some TicketService, UserService, and so on. But with Temporal, we have to think about processes. We know that there is such a thing as flight. It's scheduled at some time in the future. There should be a plane with a number of seats. People can buy tickets for those seats. At some point in time, the registration starts. Tickets need to be verified. Later, registration closes, and a plane is ready to take off. When designing Workflows, we start with defining its lifecycle. The most complicated part is to understand when one Workflow stops and another starts, and how to split multiple related business processes into Workflows. Should it all be one big Workflow? Or a Workflow with multiple Child Workflows? With our airlines concept, we decided to take the following approach: one "Flight" Workflow, which starts when tickets become open for sale and completes when the plane lands. This appeared to be a very convenient way of tracking tickets, boarding, seats, and luggage. We have one state throughout the whole flight and can track everything in one object. The workflow itself is just a class marked with the [Workflow] attribute. The class stores all details in FlightDetailsModel, but for the sake of simplicity in this article, we can assume that FlightWorkflow has a state, which consists of two things: its status and a collection of tickets. The most counter-intuitive thing for newcomers is the fact that a Workflow can simply exist for quite a long time after it started. In our case, right inside the constructor, we call Temporal methods to change the `Status` property at given points in time in the future. We don't need to program any details of a state machine. We can simply assume that for all that time, the Workflow will simply `live` somewhere in Temporal, changing its status at the defined time. Each change of status can have its own rules and validations. From this perspective, Workflows are very close to domain aggregates and how they encapsulate business logic. [See the code Github here >](https://github.com/Tech-Fabric/TemporalAirlines/blob/dev/TemporalAirlinesConcept.Services/Implementations/Flight/FlightWorkflow.cs) ![Temporal flight workflow diagram displaying a flight workflow, it's statuses (Pending, CheckIn, Boarding, BoardingClosed, Departed, Archived) and how workflow transitions from one status to another - waiting for a signal using Workflow.DelayAsync(delay).](/blog-media/d28944b6-66fda26329fc69fcce01e59b_66d74d8706edd0636230b356_6658c3c8c6309625562f153b_Flight-Workf) _*Temporal flight workflow diagram*_ Note that on the diagram the state of the Workflow just "exists" in Temporal (neither do we know how it is stored nor do we care about it. Temporal just ensures that it's there, even if the server restarts. And the only way to access that state is to query the Workflow. But at the end, when the Workflow finishes, we store the data to a database) for archive and reporting, and that's the only part where we interact with the database. It's not even required and is there just to show a very common scenario when data might be required later for reporting or analytics. We also see "Purchase Workflows" on the diagram and that they are communicating with our main "Flight Workflow" via Signals. "Purchase Workflow" is much more complicated. It should lock the tickets, get passenger details, process payment, assign seats, and, if everything goes well, notify the Flight Workflow via a Signal that tickets were purchased successfully. More than that, if something in the process fails, the A​ctivity should be retried, and if it fails even after a couple of retries, all previous steps should be rolled back. Again, we decide the Workflow's lifetime. Workflow starts when the user buys a ticket, that is clear. But what about its end? Should the workflow be completed once payment is successful? We decided that it's easier to manage all possible edge cases if we extend the Purchase Workflow to the point when the flight begins (plane takes off). That way, we can make seat selection optional but still map seats to tickets when the passenger goes through the gate and selects a seat at that time. Also, we can be sure that if the flight is delayed, we can allow people to return tickets by simply rolling back all actions using the saga pattern. ![Temporal flight ticket purchase workflow diagram which displays all workflow steps - from locking tickets to payment to tickets generation. Each step has it's rollback version, so if any of steps fail, al previous steps will execute their rollback code.](/blog-media/fd527e50-66fda26329fc69fcce01e5a1_66d74d8606edd0636230b34d_6658c4033bb70c9e50c8d991_workflow.png) _*Purchase workflow diagram*_ [The code for PurchaseWorkflow can be found here >](https://github.com/Tech-Fabric/TemporalAirlines/blob/dev/TemporalAirlinesConcept.Services/Implementations/Purchase/PurchaseWorkflow.cs) It introduces a new concept: the Saga pattern. It may look complicated, but the idea is to just gather all rollback methods into an array, and, if an exception happens, execute them in reverse order. Take a look at methods like ​ConfirmWithdrawal, BookTicket, or HoldMoney. They are very easy to understand since they simply call workflow activities. You can open the PurchaseActivities.cs file to get implementation details. Activities look like simple methods, and we write them like regular C# methods. Activities can send Signals to other Workflows (in our case, we can send a Signal to the Flight Workflow notifying that particular seats have been booked), and they can send data to third-party APIs or store the data in a database. And we, as developers, can simply write such code without caring much about possible failures. That is because activities are executed using the `durable execution` strategy. Temporal takes care of everything (if an activity fails, it will be retried according to the configured retry policy. The Workflow keeps track of all Activities executed. If let's say, some activity throws an exception) ​Temporal will try to execute that activity continuously until it's fixed according to configured policies. Even after code deployment! This means that if bad code reaches production and we notice it in the Temporal dashboard, we can simply deploy a fix and the execution will continue from where it left off. Some types of exceptions fail the whole workflow, more details can be found on the official [github readme file](https://github.com/temporalio/sdk-dotnet/?tab=readme-ov-file#workflow-exceptions). ‍ ### Failure demo To demonstrate how the workflow could be rolled back when an exception happens, we created a special artificial exception in the PurchaseWorkflow. To trigger it, select "Error" as an airport and proceed through the process of purchasing a ticket. In the final step, right after tickets are generated, the exception happens in PurchaseActivities.cs, in the [SaveTickets](https://github.com/Tech-Fabric/TemporalAirlines/blob/dev/TemporalAirlinesConcept.Services/Implementations/Purchase/PurchaseActivities.cs#L168) method, simulating the case when, for some reason, database save failed. (Since this is an artificial case, we just put the exception to the last step so that it would roll back as many steps as possible). See the extensive features of Temporal in action: View The Demo App --- ## TechFabric Wins New Comparably Leadership Award 2024 URL: https://www.techfabric.com/blog/techfabric-wins-new-comparably-award-2024 Date: 2024-10-23 Author: TechFabric As rated by our own employees, TechFabric adds **Best Leadership Teams** to our 2024 Comparably Awards trophy case! What is unique about our partnership with Comparably, is that this employee-focused feedback helps us and helps us assess and improve our company culture and values. We at TechFabric value Hard Work, Performance, Work-Life Balance, Diversity of Thought, Openness, and Humility. ‍ ![A culture score image](/blog-media/98bdab24-6673371f0557cdb54ca1330a_860ae5cc.jpeg) _TechFabric is ranked Top 5% in Leadership_ ‍ We are pleased that our employees hold our Leadership Teams in high regard. This shows the great leadership that guides TechFabric. This feedback was collected on how employees rated their CEO, leadership teams, and direct managers. The transparent and effective communication and support is appreciated by TechFabric employees. The leadership team's commitment to empowering employees and providing the necessary support for personal and professional growth is truly good. The communication style at TechFabric fosters a sense of trust and unity within our organization. ‍ ![An employee stat](/blog-media/2d992c7b-667338a078e63b4b856b0696_100.png) _100% of Product team employees feel their managers care about them as a person_ ‍ But this leadership comes from upper management, but each employee, no matter what their role--from Engineering to Product to QA to Design to Ops to Leadership--we all take ownership in our work and the value that we bring to our clients. We find great joy in helping our clients solve their business problems as efficiently as possible using the latest modern technologies. ‍ ![An employee review quote](/blog-media/83456c7f-667339fb0d914f3a7df26051_eng.png) _What is most positive about the culture and environment at TechFabric_ ‍ We're always on the lookout for great talent. To learn more about our culture and career opportunities at TechFabric, visit our [Culture & Careers page](/team). Join us as we continue our journey of growth, innovation, and success together! ‍ --- ## TechFabric is a Winner of Comparably Awards 2023 URL: https://www.techfabric.com/blog/techfabric-is-a-winner-of-comparably-awards-2023 Date: 2024-10-23 Author: TechFabric ![Two TechFabric Comparably award badges](/blog-media/21218148-64bab96f384e94b7fc49049e_1287ec37-9cad-4fcb-8d9b-b562debf9397_H4sIAAAAAAAAA3VSXW-cMBD8K) ‍ TechFabric employees have spoken loud and clear! Out of tens of thousands of companies rated on Comparably over the past 12 months, TechFabric has been recognized as one of the best in the following categories, adding two more awards to the Comparably trophy case: - Best Company Outlook 2023 - Best CEOs for Diversity 2023 [**Check out our award winning company culture**](https://www.comparably.com/COMPANIES/TECH-FABRIC), as rated by our own employees. > **I really like working for TechFabric. Open and honest communication, great care for employees, great management and values that are close to my heart.** Development Team, TechFabric ![](/blog-media/b6b6b5d0-64bab970fed3014852d4671e_e9cc0bc1-ae40-4179-a314-175da14f6fbd_H4sIAAAAAAAAA11Sy27cMAz8F) ‍ TechFabric has partnered with Comparably to continue to tell our unique story publicly. Comparably differs from other employee reviews sites with their focus on collecting current employee sentiment and ensuring the TechFabric's reputation is represented by the team members that are here today. Attracting great people matters most to TechFabric. One of the things that is critical is conveying our story to the job seekers out there. With that, we want to arm our recruiters with the stories and experiences of employees at TechFabric. Why this matters: attracting more great talent (and better culture-fits!) makes our jobs more challenging every day, raising the bar for all of us, while improving our culture and future outlook. TechFabric cares about making employees jobs more rewarding and successful by continuing to build our team with the best of the best. > **I'm proud that TechFabric's employees voted me Best CEOs for Diversity for the second year running and appreciate their continued belief in our strategy and vision as a company!** ![](/blog-media/60f9ecd4-64b07a23635cb0e2d037c4c8_fa07ab36-7fed-4422-b066-74ed0f875eb8_img-preetham-reddy-252540) _CEO, Preetham Reddy_ ![](/blog-media/97d3cefb-64bab9706ef91f361a2ea4a4_d2f9faa3-9469-489b-a640-ebbc693d75fe_H4sIAAAAAAAAA11S226cMBD9F) ‍ --- ## TechFabric Celebrates Repeat Win at Comparably Awards 2024 URL: https://www.techfabric.com/blog/techfabric-celebrates-repeat-win-at-comparably-awards-2024 Date: 2024-10-23 Author: TechFabric At TechFabric, we're not just about significant technologies; we're about our people and their journey towards excellence. It's with great pride and excitement that we announce our repeat win at the esteemed Comparably Awards 2024, where we've been honored with the coveted title of Best Company Outlook 2024 for the second year in a row. This achievement is a reflection of the active culture and unwavering spirit of our team members, who continuously inspire us with their passion and dedication. ![100% of employees at TechFabric look forward to interacting with their coworkers when they come to work.](/blog-media/aa33bdaf-65f362ef15b3fb0a8ea8cb09_look-forward.png) _100% of employees at TechFabric look forward to interacting with their coworkers when they come to work._ ‍ Our success at the Comparably Awards shows the confidence and optimism our employees have in the future of TechFabric. It's measured by our remarkable eNPS (employee Net Promoter Score) and by the genuine excitement our team members have about coming to work each day. It's about providing opportunities for growth and development, fostering a collaborative environment, and empowering our employees to thrive in an ever-evolving industry. ‍ ![100% of employees at TechFabric are proud to be a part of their company.](/blog-media/0fe97528-65f3631a2fb89acbb334a806_proud.png) _100% of employees at TechFabric are proud to be a part of their company._ ‍ ![They are innovative and collaborative and have a strong culture of teamwork and feedback.](/blog-media/3beb197f-65f36337cccf11a826a6ca84_innovative.png) _They are innovative and collaborative and have a strong culture of teamwork and feedback._ ‍ Behind this success lies a team that is eager to embrace new technologies, including exciting advancements in AI/ML. Their enthusiasm for innovation fuels our progress and propels us towards greater heights. With their support and dedication, TechFabric continues to push boundaries, delivering modern solutions and driving meaningful impact in the world of technology. In the past year, TechFabric has seen tremendous growth and evolution. From the launch of our new website, aimed at enhancing user experience and showcasing our innovative offerings, to the recognition of our CEO, Preetham Reddy, as a founding member of the American Society for Artificial Intelligence (ASFAI), our journey has been marked by milestones of excellence and achievement. As we celebrate this win, we extend our deepest gratitude to our exceptional team members who make TechFabric the incredible place it is. Their unwavering commitment and enthusiasm are the driving forces behind our success, and we couldn't be prouder of their contributions. We also express our gratitude to Comparably for recognizing our efforts and honoring us with this prestigious award. This achievement reaffirms our commitment to fostering a culture of excellence, innovation, and inclusivity at TechFabric. To learn more about our active culture and career opportunities at TechFabric, visit our [Culture & Careers page](/team). Join us as we continue our journey of growth, innovation, and success together! --- ## Secure Microservices Infrastructure Architecture by Design URL: https://www.techfabric.com/blog/secure-microservices-infrastructure-architecture-by-design Date: 2024-10-23 Author: Preetham Reddy ![Secure Microservices Architecture.](/blog-media/84ffe5af-67117eb63c05fc063e48b8db_64c3be386c48f6d4ccdad32d_530be35b-5502-4661-b5fc-75f4e67972a4_) Many software development teams have jumped on the Microservices bandwagon to bring their applications to life and respond to the growing demand of their end users. Today's consumers use variety of software services and mobile apps to go about their daily lives. There is a stark contrast between the applications they use in their personal lives (Uber, Eventbrite, Instragram, Twitter etc.,) and the applications they use for their work (Email, Messaging, Scheduling and other Intranet sites). Many software vendors have recognized this divide in the user experience and have started implementing similar strategies and UX patterns as their consumer alternatives to serve much improved user experience for their enterprise clientele. As a result, many software development shops have invested heavily in upgrading their applications and using many of the modern software architectures and development patterns. ## **Secure By Design** Event Driven Microservices and Serverless Architectures has seen a huge rise in adoption over the past few years and there has been a proliferation of tools from vendors to help companies succeed in their initiatives to modernize their infrastructure and develop secure apps and services. Yet, not a day goes by without hearing about yet another data breach or exposure compromising their users private data. As companies are adopting cloud-native architectures, its imperative to implement 'Secure by Design' architecture patterns. Your security is only as strong as your weakest link. By focusing on security early on and making it a first class citizen, companies can protect their assets and data in a much more manageable way as opposed to implementing security as an after-thought. At TechFabric, we've helped and continue to help many Enterprises with their Digital Transformation Initiatives and help them launch SaaS/Web/Mobile platforms that automates their business functions and providing delightful user experiences to their end users. ## **Secure Infrastructure** Over the past few years we've built many applications using modern cloud-native and micro-services architectures and have developed many techniques and patterns that can be used to build secure, reliable and scalable applications. In cloud-native applications, developers have the power to provision new artifacts at the click of a button. While ease of provisioning new infrastructure is a great during development phase, if those resources are not secured well in production, it can create security loopholes and create huge liabilities for companies if their consumer data gets exposed. ![Secure Microservices Architecture.](/blog-media/5903b4d6-67117eb63c05fc063e48b8d8_64c3be384e565189d75c05fb_c228b6a5-d140-44a5-a8fe-143118b1f463_) At TechFabric, we've created automated scripts and processes to provision secure infrastructure (Infrastructure as Code) between various environments. Each environment is divided into many tiers (DMZ, Front End, Back End, Middle Tier etc., ) and there are firewalls, gateways and network security groups between tiers that give access to users based on the principle of least privilege. By leveraging 'Infrastructure as Code' patterns using tools like Pulumi, Terraform, ARM scripts, we're automating creating infrastructure artifacts between Development, QA, UAT and Prod environments. That way Developers, Quality Analysts, Product Owners and other stakeholders are exposed to the secure infrastructure across all phases of software development and there's very little (if any) variance between production and lower environments. By having a granular control of each tier in your infrastructure and controlling access to various artifacts based on absolute business need, you're protecting your assets and leaving very little room for vulnerabilities. Secure infrastructure is just one aspect of securing your software applications. In the later blog posts, I'll talk about how to build secure cloud-native applications by taking advantage of secure infrastructure and how the above architecture compliments your software in securing your overall technology assets. Cheers! --- ## Robotic Automation: The Future Of Supply Chain Optimization URL: https://www.techfabric.com/blog/robotic-automation-the-future-of-supply-chain-optimization Date: 2024-10-23 Author: Leo Oliemans ![Tools icon in a digital environment.](/blog-media/49587430-64c3beeb2f3629e6b0ea8cea_995c8d5d-b136-4f28-90e5-c5d4effc32ac_6081575790349679a96f64bc_) Robotics automation technologies are already transforming the world of supply chain dynamics across nearly every business sector and industry. In 2019 alone, companies located only in North America purchased over 16,000 robots for an estimated cost of around $900 million. Robotics is the future, and the future is now. Many forward-thinking enterprises are already experiencing the many logistical advantages of utilizing drones and driverless vehicles to streamline company-specific delivery protocols. For example, the delivery of smaller packages by drone to the doorsteps of eagerly awaiting consumers is becoming increasingly more common. Not very long ago, this innovative concept was considered too complex, too futuristic, and far too expensive to even contemplate. Meanwhile, self-driving cars and trucks are also a hot, new topic of 2021 and beyond. In July 2020, [**Elon Musk**](https://www.bbc.com/news/technology-53349313) said that he is *"very close"* to developing a driverless Tesla that makes automated traffic decisions utilizing Artificial Intelligence. However, before he commits to selling the vehicle on the open market, *"it has to be absolutely bulletproof, fool-proof, tested in real-world environments to the nth degree."* If Elon Musk is confident that he can design, manufacture, and mass-market self-driving cars at an affordable price, then self-driving delivery trucks are not far away. In fact, autonomous transit buses are already here. [**The Xcelsior AV**](https://www.govtech.com/fs/New-Flyer-Introduces-First-Autonomous-Bus-in-North-America.html), developed by New Flyer and Robotic Research, is already the subject of a pilot project with the Connecticut Department of Transportation. Another way that today's companies are currently taking advantage of the recent advancements in robotic automation is by deploying autonomous mobile robots within their warehouses to perform traditionally labor-intensive tasks quickly and more efficiently. In doing so, the organization saves time and money while simultaneously improving company safety statistics through diminishing incidents of employee accidents and injuries. When combined with the most advanced supply chain software solutions, robots can also dramatically improve the enterprise's overall productivity ratings. **Robotic automation vs. AI, AR, and VR technologies** As Robotic Process Automation (RPA) adoption becomes more prevalent in supply chain management (SCM) systems, Artificial Intelligence (AI), Augmented Reality (AR), and Virtual Reality (VR) technologies are also growing in both acceptance and popularity. By evaluating data previously compiled from operational procedures of the past, companies can rely more heavily on algorithms to automate repetitive tasks of the future. Today's businesses are essentially increasing productivity rates by substantially reducing human error through robotic automation adoption. - **AI software development** Regarding supply chain optimization, AI technologies use complex algorithms based on data collected through various social media platforms, in-house inventory databases, third-party vendor databases, and other information channels to identify particular patterns within the supply chain. These patterns can involve customer purchasing habits, customer variability demands, and even less complex associations involving shipping routes or trailer onloading and offloading protocols. - **AR software development** The inclusion of augmented reality technologies in supply chain development can help organizations speed up productivity, minimize warehousing costs, reduce downtime of both employees and machinery, and boost worker engagement and employee morale. For instance, employees can use fun-to-wear smart glasses and other AR-enhanced devices to help guide themselves through massive warehouses stacked high with inventory to collect merchandise details and perform essential reordering functions. AR glasses with enhanced image recognition technologies enable fault detection and resolution in heavy machinery necessary to sort and repackage goods. And AR-enabled parcel service applications allow consumers to track their package deliveries from the company warehouses to their doorstep in real time. ![Woman thinking and a sparkle of light inside her head.](/blog-media/2809bd45-64c3beec1e8117992db9fc50_b9c19baa-1c2b-4e74-97a3-6370ddd4bbe0_608157e6d5b9a2d105a7c7ae_) - **VR software development** Top-rated digital disruption companies like Amazon often have multiple distribution centers, manufacturing facilities, and warehouses located across the globe. Nonetheless, supply chain managers must remain on top of things even when they are currently located thousands of miles away. Through the effective use of virtual reality or augmented reality technologies, these managers now have the unique ability to review current operational functions occurring in any geographical site to ensure that everything is running smoothly and properly. Another revolutionary example of AR technology involves the navigational systems of delivery drivers. For drivers delivering temperature-controlled merchandise, the conducting of regularly scheduled manual checks of the sensitive cargo is among the drivers' many responsibilities. While performing these manual reviews is essential for ensuring timely and damage-free delivery of the temperature-controlled product, they can also easily hamper driver productivity while increasing the risks for delivery delays and even driver accidents. Fortunately, VR-enhanced technologies enable delivery drivers to check on the cargo virtually by superimposing product information directly onto the drivers' windshields. Similar VR solutions can also identify traffic jams and blocked roads in advance of the driver's approach. After calculating the best possible alternative route, the newly devised navigational information is then superimposed directly onto the windshield yet again. Without ever having to touch a smartphone or stop the vehicle, the driver's dilemma is instantly resolved. **IoT and supply chain software development** Devices enhanced with IoT technologies (the Internet of Things) are also becoming increasingly more commonplace in supply chain optimization and development. IoT-enhanced devices utilizing specially fitted sensors assigned to individual packages help companies, third-party vendors, and especially customers track the precise locations of their merchandise in real time. When integrating IoT solutions within the inventory management protocols of company warehouses and retail outlets, businesses benefit from increased visibility into product manufacturing, real-time inventory capacities, potential shipping bottlenecks, and predictive maintenance requirements. Moreover, the instantaneous collection and distribution of big data via these IoT devices also allow organizations to proactively service customer demands while minimizing downtime and simultaneously increasing the supply chain's overall ROI. **The agility factor** The most successful supply chain optimization strategies allow for a bit of wiggle room in case something outside of company's control unexpectedly goes wrong. These kinds of unpredictable events might include severe changes in weather, fluctuating costs and availability of raw materials, and natural disasters like the recent coronavirus pandemic. Even [**new tariffs and global trade issues**](https://www.logisticsmgmt.com/article/trade_tension_and_uncertainty_from_tariffs_puts_supply_chains_on_alert) can send the SCM systems into chaos. To remain consistently competitive in a world filled with uncertainties, companies must remain extremely agile to guarantee supply chain stability, business continuity, and excellent customer service. To achieve that level of agility, companies must take advantage of several supply chain modeling solutions to identify potential problems, predict possible outcomes, and devise alternative strategies for problem resolution. **Conclusion** There is little doubt that the heightened expectations of today's typical consumer influence every aspect of supply chain dynamics. Likewise, modern logistics and delivery management solutions improve supply chains globally by making them smarter, faster, more sustainable, and more customer-centric. For enterprises to maintain their strong competitive advantage, remaining up-to-date on the latest technological trends for supply chain optimization is essential in minimizing the potential negative impacts on business continuity. Even the most reputable Microsoft specialists completely understand the many challenges organizations typically face when deciding whether to implement the latest supply chain technologies. As one of the leading digital transformation strategy consulting agencies in North America, TechFabric guides businesses large and small through the entire custom software development process step-by-step. For more information on the most advanced robotic automation technologies for optimized supply chain software development, [**contact TechFabric**](/contact)today. ‍ --- ## Outsourcing: The Secret Weapon for High-Growth Companies URL: https://www.techfabric.com/blog/outsourcing-the-secret-weapon-for-high-growth-companies Date: 2024-10-23 Author: TechFabric As an increasing number of companies look to digital for growth and scale, they face many challenges on their way. From transforming their in-house and customer facing systems and software to deciding when (and who) to hire, and balancing budgets at the same time, it can be a lot to juggle and the stakes are high. But here's the thing- talent is difficult for companies to predict, and scaling can oftentimes hinder true progress for an organization. Whether it's a lack of speed, the wrong people in seats, or the cost of hiring the specialists you need, or simply the cost of turnover, it's a pain felt by many. **To Outsource, or Not to Oursource** It can be easy to look at massive organizations and assume that they have all of their efforts initiated in-house. But here's the secret- they don't! High-growth companies, even some of the largest in the world, outsource talent to augment their teams efficiently and effectively. ***In favor of outsourcing*** Here are some key benefits to organizations looking to outsource their talent for specific projects and endeavors: **Quick Access to Additional Talent** It's no secret how costly it is to scale a team. It costs around $4100 to onboard a new employee, and even more than that to let them go (up to 30% of annual salary according to Forbes). Not to mention the money that goes into training, the time it takes to even find the talent, and the ramp-up process for them to grow accustomed to your processes, company culture, etc. By outsourcing your talent, you can quickly and efficiently loop in talent that has already been vetted and you know you can trust. The burdens associated with hiring are no longer your responsibility, along with other big advantages including: **Easily Toggle Pipeline Up and Down** With access to an outsourced team, you are able to increase (or decrease) the numbers of team members and scope of skill-sets that you need. We've worked with a variety of clients who unexpectedly experience team turnover and need immediate access to more team members and can't afford to wait to interview, hire, and onboard to pick the project back up. **Minimize Overhead, Pay Only for What You Need**Hiring in-house means you pay for your team regardless of what is happening in the company. Project delays or gaps? You'll still be paying your team and all the overhead that goes with it. Outsource and you only pay for what you need and use. **Gain Access to Unlimited Specialists** When you outsource your talent pipeline, you also gain immediate access to specialists who can provide expert direction and insight to your project. **Maintain Ongoing Innovation**Innovation silo's are one of the biggest reasons to outsource. When in-house teams or individuals are not part of a larger team, they will stagnate and focus on what they already know. When you outsource, you are tapping into the constant innovation factor a good digital partner must have. And the best part is, you don't have to pay for it AND your internal teams gain the benefits through exposure. ![Key benefits of outsourcing.](/blog-media/1830c69f-64b18eaaf4be2510fe53c607_66230bd5-0b07-4c12-a1f9-3dd4d3719d2b_techfabric-outsourcing-ke) ***The Downside of Outsourcing*** **It's Hard to Find a True Partner** Locating the right outsourcing partner can be a challenge, and not all companies are equal. The key is to go beyond just discussing requirements, timelines, availability and budget. Gain a clear understanding of their approach, and *how* they partner with clients. Ask for references and ask the same of them. Yes, quality matters most, but factors like responsiveness, collaboration and visibility can directly affect overall success. In other words, finding a partner who can truly work*with your organization* is as important as the talent they possess. **Dependency On Partner's Ability to Source Talent** One of the drawbacks to outsourcing is loss of control on which resources join your project. A little insider advice, if you have no involvement or discussion on this front, that is a red flag.For example, determining if on, or offshore talent is best for the role and how that affects the working relationship (e.g. time zones, language, etc.) are discussions we will involve our clients in. **Maintaining Long-Term Relationship Can Be Tough** Maintaining ongoing relationships with an outsource partner that can weather the challenges and unknowns is not easy. It's just like any relationship! It takes a commitment from both clients and partners to grow together. In other words, it takes dedication from both sides to ensure ongoing success. ***At the end of the day, understand your core needs*** No one knows your business, and its needs, better than you. The best approach to engaging either in scaling your own team or seeking out an outsourced partnership is to go into it with clear expectations. Here at TechFabric, our approach focuses on ongoing relationships, and we experience a client churn rate of less than a third of the industry average. Our team structure, communications and transparency are designed for extended relationships, but not all partners work this way. Ask your potential partners about this. What is their churn rate and why? If they don't know the answer to that, they are probably more focused on shorter project cycles and may not be the best fit for long-term engagements. Ultimately, there is no right or wrong way to consider outsourcing- and it always boils down to **the needs and desires of the organization**. That said, we know you are reading this looking for a solution; so let's get to it. **What Works Best** (and what many high-growth companies are already doing) ![TechFabric's hybrid approach.](/blog-media/a84e774b-64b18eaaa215c41e7d56afe1_ca5ada9f-16cb-46d5-8a40-25a9ca74a509_techfabric-outsourcing-hy) At TechFabric we believe that strategized partnerships have the power to scale technical solutions and optimize time and resources. What we often find is that **the co-innovation model often works best for most businesses**. In this model, there are key roles (e.g. Product Owner) in both the business and technology partner organizations. These roles work in tandem to "co-innovate" or combine their subject matter expertise to ensure everything built meets both the business, industry and technology needs. This model gives the business more control but more importantly, ensures that software, systems, etc. are built and designed based on the actual business and its users, not just software or industry "best practices". Using this approach creates far more usable solutions that provide immediate value to end-users, landing in their "sweet spot" from the first iteration. At TechFabric we're all about reducing risk by gaining as much information and removing as many unknowns as possible, and the co-innovation approach does exactly that. If you've read up until this point and still have questions, [**let's chat**](/contact)! ‍ --- ## Meet Preetham Reddy: Innovator, Leader, and Founder of TechFabric URL: https://www.techfabric.com/blog/meet-preetham-reddy-innovator-leader-and-founder-of-techfabric Date: 2024-10-23 Author: TechFabric At the helm of TechFabric is Preetham Reddy, a dynamic leader with a proven track record in architecting and developing mission-critical systems for some of the world's largest organizations. As the Founder and CEO of TechFabric, Preetham has steered the company to become a trusted name in modern software development, well known for delivering scalable, durable solutions in the B2B space. With over two decades of experience, Preetham is known for developing mission-critical systems for organizations like American Airlines, where flawless execution is non-negotiable. His ability to architect reliable software systems that support complex, real-time operations shows his deep expertise in software engineering and system architecture. ## **A Thought Leader in AI and Durable Execution** Beyond his tactical accomplishments, Preetham is also deeply invested in the future of technology. He is an active member of the American Society for Artificial Intelligence (ASFAI), where he contributes to the advancement of AI technologies and their integration into everyday business operations. His work within ASFAI positions him as a thought leader in artificial intelligence, constantly seeking new ways to use AI in business-critical applications. Preetham shines brightly in his advocacy for durable execution frameworks like Temporal. In an era where applications must scale and withstand failures and recover cleanly, Preetham has been a major proponent of Temporal's [durable execution](/blog/the-imperative-of-durable-execution-in-app-dev-unveiling-temporals-framework) model. Preetham's adoption of Temporal isn't just a technical decision, it reflects his vision for the future of software development. He believes that frameworks like Temporal are central for building modern, distributed systems that can manage complexity, ensure reliability, and still allow for rapid innovation. ### **The Vision Behind TechFabric** TechFabric, under Preetham's guidance, has earned a reputation for building mission-critical applications that are durable, scalable, and capable of delivering long-term value. With a global team of experts, TechFabric uses the latest in software development frameworks and AI to craft solutions that empower businesses to thrive in today's digital-first landscape. Preetham has also led the way in pioneering AI for business, including proprietary tools like Fiber, an intelligent LLM-based chatbot for business, as well as other advanced AI/ML tools for healthcare and supply chain. Preetham's leadership goes beyond technical expertise; he is also a mentor and guide for his team, constantly pushing the boundaries of what is possible with modern development practices. His vision for TechFabric is rooted in creating software solutions that meet today's challenges and are future-proofed for the evolving demands of tomorrow's businesses. In a world where digital transformation is essential, Preetham Reddy stands out as a leader who understands the importance of building resilient systems. Through his work at TechFabric and his ongoing advocacy for AI and durable execution, Preetham continues to influence the software development landscape and inspire innovation across industries. --- ## Meet John Bellaud: Strategist & Digital Product Leader URL: https://www.techfabric.com/blog/meet-john-bellaud-strategist-digital-product-leader Date: 2024-10-23 Author: TechFabric John Bellaud, EVP of Product and Delivery at TechFabric, lives at the forefront of digital transformation with over 30 years of experience across technology, business, marketing, and user experience. His core strength is bridging the gap between business goals and innovative digital solutions. Whether working with startups, mid-market companies, or large enterprises, John's focus has always been crafting high-impact digital strategies that accelerate growth and drive operational efficiencies. John's expertise lies in his ability to integrate business and technology in a way that aligns organizational goals with modern user expectations. His leadership at TechFabric is central to its mission of helping businesses use modern technology to stay competitive in a fast-evolving market. John has a track record of successfully managing large-scale digital initiatives, from conceptualization through results, delivering tangible value across the entire chain from stakeholders to internal operators to channel partners to end customers. ## **A Leader In Leveraging Technology to Drive Business Growth** One of John's key strengths is his deep understanding of how digital ecosystems intertwine with business and customer goals. His work sits at the intersection of product development, business strategy, technology innovation, and user experiences, where he uses insights from each area to deliver solutions that genuinely move the needle. This complete approach enables him to lead teams in building innovative products and digital experiences that truly resonate with users while driving measurable outcomes. At TechFabric, he works closely with top technical leads, including CEO Preetham Reddy, to build and deliver resilient, mission-critical systems across a range of industries. His work doesn't just help companies implement digital solutions, he understands how to unlock new growth opportunities that propel organizations to the top of their market and far beyond their competition. Organizations want John on their team because of his ability to navigate complex digital landscapes, keeping pace with rapid technological advancements and trends while staying grounded in business realities. His leadership style aligns teams around a shared vision of innovation, collaboration, and championing new ideas and directions. With over three decades of experience, John has seen the evolution of digital ecosystems firsthand. His commitment to embracing the latest technologies, such as AI, automation, and [durable execution](/blog/the-imperative-of-durable-execution-in-app-dev-unveiling-temporals-framework) frameworks like Temporal, make him a valuable asset to TechFabric and their clients. His insights into how digital solutions can be strategically deployed to improve customer experiences and operational efficiencies are invaluable in today's fast-moving digital economy. ‍ --- ## Meet Andrew Ripley, Senior Product Owner at TechFabric URL: https://www.techfabric.com/blog/meet-andrew-ripley-senior-product-owner-at-techfabric Date: 2024-10-23 Author: TechFabric **Product Spotlight: Meet Andrew Ripley, Senior Product Owner at TechFabric** A technical solution is only as powerful as the humans behind it, and we are proud to have some pretty incredible people working at TechFabric. Let us introduce you to Andrew, one of our product owners and strategists helping companies take their product ideas from the beginning to the finish line. **OK, so what is a Product Owner?** Andrew joined TechFabric in 2020 with over 11 years experience in Sales and Project Management and over 10 years in Product Management. Here's how he breaks down the difference in the two roles: Product Owners and Project Managers depend on each other to make magic happen. When a **product owner** is brought into your project, they are your partner from beginning to end. They work directly with you to conceptualize your idea, understand your business goals and audience, plan out the right solution, map the value streams, and shepherd the solution through to success. They are your partner and confidante, helping you navigate and make decisions that will help your business grow. **Project managers** are the hub of your development team, acting as team organizers, scrum masters, budget monitors, carrying tasks through and helping meet and communicate deadlines. **A great product owner has the brain of an engineer, the heart of a designer, and the speech of a diplomat.** Deep Nishar, Vice President of Product at LinkedIn Not all product owners or product development companies are created equal. This role can vary greatly depending on the company or product owner you are talking to. In Andrew's case, he quickly discovered the product owner role at TechFabric covers a bit more than the "standard" industry description. **General view of product owner role:** ![](/blog-media/b384966c-66e0b127c1b0a556383d3851_64b824802782b632a4e3e3c6_c0b17237-4e0d-4847-8eb3-55afd61366ae_) Being a consummate expert, Andrew was excited to expand his role because he understands what we already know; product owners are one of the most key success roles and just being a "cog in the project wheel" or simply gathering requirements and writing user stories is a far cry from what a fully fledged TechFabric product owner's role looks like. **TechFabric's expanded view of Product Ownership** ![](/blog-media/8f22e640-66e0b127c1b0a556383d3855_64b824814ddf423e32c5b1ec_da64b56b-dcc2-40b6-adb2-b717de5b0135_) **Why do you think Product Owners are important to projects?** Product Owners play an integral role in moving things forward, there's no question about it. But they're also partners to an organization in dissecting data points and formulating best next steps with key decision makers based on that data. "Being a product owner gives me the chance to directly impact the success of a business. I get to live on the strategy side and drive projects forward. The things that I can do with the data to help a business move the needle forward, that's what makes my job so rewarding." Andrew makes a point of adding that Product Owners help champion every point of view- from protecting operational efficiencies to making the end user experience smooth and intuitive. He wears a multitude of hats as he helps decision makers move in the best possible direction for their business. **What do you love about being a Product Owner?** The way Andrew sees it, a lot of organizations that offer services similar to TechFebric play a passive role in projects, serving as order takers. At TechFabric however, team members play an active role and work as partners with clients. Completing the project is the minimum. Helping the business thrive is the job. "Product Owners always want the ball. They are hungry for the next challenge and want to take ownership of the road to success." **Why do you like working at TechFabric?** "I have 20 years behind me and I'm still learning something new with this amazing team." Andrew also points out that leadership encourages curiosity, and creates a space where team members can continue to learn and evolve. Your opinion and thoughts really matter to the team and to leadership, which fosters a community devoted to growth. > **At TechFabric we believe in collaboration and championing diverse ideas. Innovation doesn't come from doing what you already know, it comes from people like Andrew who know how to drive teams and solutions beyond their comfort zone to do extraordinary things.** John Bellaud, TechFabric COO **What are you up to outside of work?** Being a dad to his 3-year-old daughter is Andrew's number one passion. Outside of being a proud dad, Andrew is a *major* board gamer. No really, he has an entire wall dedicated to different types of games to play depending on the mood of the group. Andrew related his love for board games to his love for product management: you learn how to become great at asking questions and educating yourself, with the goal of accomplishing something big. They also allow him to connect with people on all levels: playing with friends, his wife, his daughter, or by himself. "Strategic, critical thinking is one of the most important tools of any product owner. It's like the acrobats who spin and balance multiple plates at once. You have to be able to balance and track lots of different dependencies, approaches, goals and needs to roll it all into a successful solution." ![](/blog-media/4a802fdd-66e0b126c1b0a556383d384d_64b824807ebf85b868ad36d4_d6d2f96b-e3c3-4e44-9d69-79671f3635f5_) The final thing that makes us just love Andrew? When he's looking for something fun to do on his own, he loves reading the instruction manuals for new games. "I know, I'm a little weird in that way but I just love to understand games (and just about anything else) inside and out. I love knowing down to the granular details, not just the surface info. I get as much of a kick playing with friends and family as I do spending time reading the rules and fully understanding the mechanics of the game". We are very lucky to have team members like Andrew at TechFabric, who make the company better not solely because of their work ethic but also the culture and "never say die" attitude they bring to the team. ‍ --- ## Mastering the Art of Prompt Engineering for Generative AI URL: https://www.techfabric.com/blog/mastering-the-art-of-prompt-engineering-for-generative-ai Date: 2024-10-23 Author: Leo Oliemans **Introduction** Prompt Engineering is a foundational skill for navigating the emerging landscape of Generative AI. By understanding how to effectively communicate with AI models, we unlock their potential to generate content that resonates with human needs and intricacies. The rise of Large Language Models (LLMs) in various applications from coding to content creation signifies the growing importance of subtle prompt construction to guide these AI systems toward desired outcomes. **The Iterative Process of Prompt Engineering** Prompt engineering, much like the sculptor molding clay into its final shape, follows an iterative development cycle of refinement. This process bears a striking resemblance to machine learning development where continuous cycles of hypothesis and testing lead to improved models. Similarly, effective prompts are often the result of careful crafting, testing, and revising. **Setting the Stage for Effective Prompts** An effective prompt begins with a well-prepared environment. Just as artists select their palette and tools before painting, prompt engineers need to consider the context and constraints of their AI interactions. The specificity and clarity of prompts shape the AI's responses and determine the utility of the information generated. **Crafting Precise and Detailed Prompts** For instance, when tasked with comparing microcontroller specifications for an IoT project, an embedded prompt might read: > "You are my personal assistant who is an expert in electronic component analysis, and I'm working on a low-power IoT project. Act as if you are a seasoned electronics application engineer providing consultancy. > > Create a technical briefing that compares the energy efficiency and computational capabilities of the A12 Bionic microcontroller versus the Snapdragon X20 microcontroller. > > Do focus on their power consumption rates, processing power in terms of GFLOPS, and cost per unit for bulk purchases. Don't include any advanced features that are unnecessary for simple IoT devices, like graphics processing capabilities." This prompt exemplifies specificity by directing the AI to produce a comparative report with a detailed summary table, demonstrating the targeted approach advocated for in this article. **Defining Output Presentation** The above-mentioned prompt continues to direct the desired output with clear instructions on format and tone, stipulating: > "Present this in the form of a concise comparative report and include a summary table. The report should be technical but understandable for a non-expert audience, aiming to be informative yet engaging. > > Please use a respectful and professional tone appropriate for a business setting. If there are technical terms, briefly explain them." By commanding the AI to craft its output in a particular structure, the response is more likely to align with the user's exact needs. **Incorporating Do's and Don'ts in Prompts** Our example prompt employs this strategy effectively by telling the AI what to include and what to exclude, thereby optimizing the relevance and usefulness of the AI's output. **Tone and Audience Considerations** The effectiveness of AI-generated content is also measured by how well it resonates with its intended audience. Specifying the tone (whether professional, casual, humorous, or solemn) helps AI align its language and style with the audience's expectations and the content's purpose. Prompts need not be static. They can evolve based on the AI's responses, allowing the user to refine and expand upon them to steer the conversation or content generation towards a more focused target. **Feedback and Correction Mechanisms** AI, like any tool, benefits from feedback. Correcting errors and affirming what works helps the AI learn user preferences and adjust its future outputs for better accuracy and relevance. Even the construction of prompts can be aided by AI. Asking the AI to suggest prompts based on a user's vague idea can be a meta-approach to prompt engineering, harnessing AI's generative capabilities to refine its own instructions. **Conclusion** The field of prompt engineering is as dynamic as it is crucial. As AI models become more sophisticated, the art of communicating effectively with them continues to evolve. By mastering prompt engineering, we can ensure AI tools serve our goals with precision and ingenuity. --- ## It's Time To Move Your Company To The Cloud: Here's Why URL: https://www.techfabric.com/blog/its-time-to-move-your-company-to-the-cloud-heres-why Date: 2024-10-23 Author: TechFabric Over the past decade, the cloud has become a central topic for growing enterprises. A reported [**94% of enterprises**](https://webtribunal.net/blog/cloud-adoption-statistics/#gref) have cloud strategies in place, and that number continues to increase. While cloud migration was already experiencing a sharp uptick in use and relevance, COVID catalyzed the desire for companies to transform their operations, improve efficiencies, and create a safer and more secure way to do work. > **The pandemic hit the fast-forward button on organizations making the move to cloud technologies. This segment was already growing rapidly, but we have seen a 5x average growth rate in companies moving to, and taking full advantage of, cloud.** *--Preetham Reddy, TechFabric CEO* ‍ ## **The Cloud, Defined** Modern cloud technology allows companies to move the digital assets, services, resources, applications and more to an off-premise virtual environment that scales as with the business and its technology needs. Cloud removes the need for physical servers or traditional data centers, and offers a host of advantages through cost savings, greater flexibility, elasticity and optimal resource utilization. As a technology, cloud computing is much more than the sum of its parts. It opens doors to cloud-native technologies, supports more efficient ways of working and enables emerging capabilities in machine learning (ML) and artificial intelligence (AI). Organizations of every type, size, and industry are using the cloud for a wide variety of use cases, such as data backup, disaster recovery, email, virtual desktops, software development and testing, big data analytics, and customer-facing web applications. Let's take a look at some of the main benefits to making the move to cloud. ### **Key Benefits of moving to the Cloud** Today we still run across misconceptions about moving to the cloud. "It doesn't have the performance we need" or "It won't be as secure as our on-prem environment" are concerns we hear often. The truth is, for the overwhelming majority of businesses and cases, cloud offers better performance, increased security and believe it or not, is actually less expensive over time than most on-premise ecosystems. And for others, a hybrid approach may be the key to maximizing their overall ecosystem with multiple environments. ![Key benefits of moving to the cloud](/blog-media/840f2da3-64b07a57a66be20bb6ad19a3_9af96ecc-4276-4df7-81bf-a11ac5141769_techfabric-cloud-benefits) ‍ #### **Budget Friendly** Instead of paying to host your servers in-house, pay a hosting company at a set fee, sometimes cutting budgets by as much as 50%. The confusion here is that cloud offers a lot more built-in services and features, which after migrating, most companies want to take advantage of. This can, and will, increase budgets. That said, if you take a 1-to-1 comparison with your on-prem features, cloud is typically the same, or even less expensive. #### **Transparency in data** By moving your business to the Cloud, your business can explore more detailed and reliable insights and analytics. do you have the ability to access more reliable data and the timeliness of accessing that data is significantly improved. Moreover, using cloud cuts time to build data warehouses and other solutions that can aggregate and make data fully visible where it wasn't previously. #### **Improved Security** Cloud providers are held to a security standard unlike most- which makes moving your company to the cloud a safety-first practice. The data centers covered by the likes of Microsoft, Amazon, and Google are built to keep themselves (and therefore you) safe. They have the means to afford the best cybersecurity experts in the field, which means you are protected as well. Most cloud platforms, such as Microsoft Azure, offer a host of built-in security tools and management giving you the security you need on the application and user levels in addition to the infrastructure. #### **Scalability** As your organization grows, so does its infrastructure. Whether it's an unexpected amount of incoming traffic or something else, cloud providers offer businesses on-demand capacity using a pay-as-you-go model, which means your company can toggle up OR down depending on needs, as quickly as you need it to. Also included are advanced load-balancing tools allowing you to both scale and route overages into the right places to assure 100% uptime and performance. Pay for what you use, get all the tools to fully manage and position yourself for scale… it's a win win. *Want to see how moving to the Cloud has helped someone else? Check out our case study on VRM (Vehicle Reporting Matrix), who was able to X, X, AND X when we migrated their company over.***Some of the top Cloud providers** ![Amazon Web Services, Microsoft Azure Cloud and Google Cloud.](/blog-media/17f7a80f-64b07a5740e8b121c689916f_e8543213-bf9f-4749-b8f1-0967f7409c46_TechFabric-Benefits-Cloud) ‍ With an ever-increasing demand for businesses to move to the cloud, it's also important to know the available providers and determine which is best for you. We've provided quite a few of the top providers, though our team at TechFabric are strong advocates for Amazon Web Services and Microsoft Azure (and are proud certified partners of both). ### **Amazon Web Services (AWS)** **Known for:**Popular with Startups and SMBs looking for an inexpensive platform that is powerful enough to scale to Enterprise. Hosts companies like Pfizer, GE, and Disney. *Our opinion: AWS is a great service and currently the most widely used. While it is powerful and easy to scale and comparable in cost, our cloud teams feel the initial setup is more complex than Azure or Google (needlessly so). We consider AWS to require a bit more advanced skillset to configure as opposed to the competitors, but besides that it is arguably still at the front of the pack..* ### **Microsoft Azure** Known for: An enterprise-level PaaS and LaaS provider offering mobile and web app deployment along with scaling, database services, virtual machines, mobile backends, and more. The fastest growing cloud platform, Microsoft Azure is trusted by companies like H&R Block, Whole Foods, Xbox, and Bosch. Ideal especially for organizations looking to take advantage of the whole suite of products offered by Microsoft. *Our opinion: The most flexible of the three; fast to setup and configure with more built-in tools and features than AWS or Google. 94% of companies use Office 365, which enables Single Sign On (SSO) through existing Microsoft accounts making user management and access simple and easy. We'd have to go with Azure as our favorite of the three, due to the ease of configuration, built-in tools, huge developer community, and competitive costs.* ### **Google Cloud Platform (GCP)** Known for: Google's PaaS offers cloud computing, storage, and API services to help build and launch sites and applications in the cloud. Companies like Home Depot, PauPal, and Twitch use it. *Our opinion: Google is gaining steam but look at them as a better fit for smaller organizations and startups. The open source capabilities and default security offer flexibility and simplicity, and the cost can be much lower than Azure or AWS based on Google's billing model and what you get for it. Not so great is the much smaller global footprint and lack of more common development tools and smaller community.* #### **What Is Involved with Cloud Migration?** Cloud migration is moving an organization's digital ecosystem (digital assets, resources, services, applications and more) from an on-premise or hosted environment either partly, or fully, into a cloud environment. The question is, where to start. ![A spreader lifting a red container.](/blog-media/db908601-64b07a5740e8b121c68991b1_b2a284bf-d0ec-4d42-ad4f-baa84c14882b_techfabric-lift-shift.jpe) ‍ #### **Determine your level of cloud migration** There are ultimately two ways to make the migration happen: a shallow cloud integration or a deep cloud integration. Your organization's needs will help dictate. **Shallow cloud integration**is the starting point for most organizations and does not require any significant changes, refactoring or modification of the existing code or infrastructure. Coined "lift-and-shift", you simply "lift" the current data and storage environment and "shift" it to the new cloud environment. Shallow can include both licensed and custom applications as well as databases, resources and other areas. They key is only areas that can be migrated with no, to very minimal, changes qualify for this step. **Deep cloud integration**is more involved as two main things occur, conversion and expansion. Conversion is the replatforming of legacy or outmoded applications to modern cloud-native architecture, frameworks and codebases. Expansion is taking full advantage of cloud capabilities including security, performance, monitoring and more now that applications and infrastructure are fully in the cloud. #### **Single cloud, hybrid or multi-cloud** Different organizations need different configurations. Some go cloud, others create a hybrid of on-prem and cloud while some companies span their needs across multiple cloud providers. With **single cloud**, the obvious advantage is working on one platform with one provider. The only real downside to picking only one cloud provider is vendor lock-in - which can make ever making another move just as difficult as the initial move to cloud in the first place. **Multi-cloud allows** you to mitigate risk of a single providers by spreading your ecosystem out over multiple (e.g. Azure and AWS), with the downside being you'll have to maintain multiple environments which will likely mean larger teams working in parallel. **Hybrid environments** are a combination of on-premise and cloud environments. Some organizations require this for compliance and/or during the infancy of their cloud migration. This can be the most challenging to ensure all environments are in sync and properly maintained. #### **Create data-migration plan** Arguably the most integral step of the process, having a data migration strategy in place prior to any move is key. A good strategy will prevent data loss and create a smooth transition across the entire business dataverse. A poor strategy will lead to challenges that can hamstring the business and cause lost time, cost overages and distract from core continuity activities tech teams need to stay focused on. **Switch over** > **The biggest mistake we see companies make when migrating is not having an complete strategy in place. For any successful cloud migration you need to understand the entire digital ecosystem to fully assess the impact on all areas and create a strategy that addresses each. Without that a business will almost certainly hit unforeseen challenges that can lead to lost time, budget overruns or worse.** *--Preetham Reddy, TechFabric CEO* ‍ Ultimately, here's what we hope you take away from all of this: moving your organization to the Cloud is an extremely strategic and beneficial move. It is also only as impactful as the strategy and mindset behind it. Cloud services aren't inherently significant or revolutionary, they are a catalyst to transformation. #### **What's My Next Step?** For any company thinking about making the move to cloud, your best next step is to reach out to a cloud technology partner or consultant. Cloud migration is achievable by internal teams, but there is a big learning curve with many challenges and unknowns, especially for novices. Working with a partner, even if it is just to build out the strategy your team will follow, will greatly lower your risk and actually keep costs down. If you're interested in learning how TechFabric partners with organizations to use Cloud services and ensure smooth migrations, [**send us a message!**](/contact) --- ## Innovation And Governance: Finding The Balance In AI URL: https://www.techfabric.com/blog/innovation-and-governance-finding-the-balance-in-ai-how-asfai-is-tapping-the-industrys-top-minds-to-chart-a-path-forward-for-the-future-of-artificial-intelligence Date: 2024-10-23 Author: TechFabric ‍ ![](/blog-media/dcbb88ad-img-ASFAI.svg) _The American Society For AI - ASFAI.org_ In a central moment for the advancement of artificial intelligence (AI) and its responsible governance, TechFabric proudly announces the induction of its Founder and CEO, Preetham Reddy, as a founding member of the American Society for Artificial Intelligence (ASFAI). Establishing the ASFAI marks a major milestone in our collective journey towards harnessing AI's power. Reddy's commitment to ethical and innovative AI development has earned him a central role in shaping this influential society. Alongside leaders and visionaries from a cross-section of industries and sectors, Preetham joins key influencers from organizations like Meta, C3, and NASA, to name a few. The ASFAI emerges as a response to the critical need to understand, govern, and use AI's potential while navigating the complex landscape of global competitiveness. As one of the inaugural members, Preetham brings his visionary approach and extensive expertise in technological innovation and development to a consortium of leaders dedicated to fostering responsible AI adoption. > "Establishing the ASFAI marks a significant milestone in our collective journey towards harnessing AI's power while ensuring ethical governance," stated Preetham Reddy, reflecting on the society's formation. "Finding the balance between these is critical to the future of AI and how it will impact the whole of humanity." The ASFAI's inception signals a concerted effort from today's leaders to work towards this balance. By convening top minds, including Preetham Reddy, the society aims to guide policy makers, businesses, and the public in understanding the implications of AI on society and how to guide its growth. Reddy's involvement shows his dedication to leveraging AI for positive change while championing ethical guidelines in its development and application. As CEO of TechFabric, Reddy has continuously advocated for innovation rooted in responsible AI practices, enabling the company to lead in delivering significant solutions while still prioritizing societal well-being. The induction of Preetham represents ASFAI's commitment to bridging the gap between technological advancement and ethics. It emphasizes the importance of creating an environment that fosters innovation while ensuring that AI remains a force for positive progress on a global scale. Reddy's leadership shows TechFabric's commitment to responsible AI development and reinforces its position as a trailblazer in the world of AI-driven technology solutions. ##### About TechFabric TechFabric is a leading custom software development company specializing in harnessing AI technologies to deliver innovative solutions for businesses worldwide. ##### About ASFAI American Society for AI (ASFAI) is a private club of the most prominent leaders in Artificial Intelligence (AI) with a mission to make the world a better place with AI. For media inquiries or further information, please contact: ‍ Alex Bruner Marketing Coordinator TechFabric (480) 681-6806 [alex.bruner@techfabric.com](mailto:alex.bruner@techfabric.com) www.techfabric.com ‍ --- ## Industry Game-Changer: Large Language Models (LLMs) URL: https://www.techfabric.com/blog/industry-game-changer-large-language-models-llms Date: 2024-10-23 Author: John Bellaud Large Language Models (LLMs) are massive deep-learning models pre-trained on extensive datasets. They use transformer architecture, comprising encoder and decoder networks with self-attention capabilities. These models understand text sequences and relationships between words and phrases. ![TechFabric-Large-Language-Model-LLM-Header-Graphic-Sample-LLMs](/blog-media/7f964b6c-6647df91aaaf000714f4b4a2_TechFabric_Blog_LLM_Models.png) Imagine an LLM as a super-smart program that's like your smartphone's predictive text feature, but on steroids. You type a few words and your phone suggests what you might want to say next. Well, large language models can do that, but on a scale we have never seen before. To put LLMs in a greater context, they are a segment of a category of AI called "generative AI". You may have heard this term or even used one of the platforms like DaVinci AI's image generator. LLMs are also a form of generative AI specifically architected to help generate text-based content based on user inputs. LLM's come in many forms, OpenAI / ChatGPT is a good example of one type. It's been trained on tons and tons of text from all over the internet, so it knows a lot about how people talk and write. It can understand what you're saying, follow specific instructions (prompts), and even generate whole paragraphs or stories if you want it to. ## **Some other examples of Generative AI / LLM models in the market include:** ![TechFabric-Image-Microsoft-Turning-NLG-logo](/blog-media/c2410a2c-6647dfd605c420c39f2a8e15_TechFabric_Blog_Microsoft_Turing_LLM.png) ### **Turing-NLG by Microsoft** A large-scale language model designed to generate human-like text with advanced capabilities such as context-aware responses and coherent dialogue generation. It's trained on a diverse dataset to achieve high fluency and relevance in generating text. **Unique Feature:** Turing-NLG is specifically optimized for natural language generation tasks, making it well-suited for applications like chatbots, virtual assistants, and content generation where generating human-like text is essential. ‍ ![TechFabric-Image-Google-XLNet-logo](/blog-media/969b55f0-6647e0d55e10203bd06bd169_xlnet.jpeg) ### **XLNet**‍ Developed by researchers at Google and Carnegie Mellon University, XLNet is a generalized autoregressive pretraining method that combines ideas from previous language models like BERT and Transformer-XL. It aims to address limitations in capturing bidirectional context and improve performance on various natural language understanding tasks. **Unique Feature:** XLNet's permutation language modeling objective enables it to consider all possible permutations of words in a sentence during training, allowing it to capture bidirectional context more effectively than previous models. ‍ ![TechFabric-Image-Google-T5-logo](/blog-media/788956fb-6647e14036e54643ac8d22b7_TechFabric_Blog_Google_T5_LLM.png) ### **T5 (Text-to-Text Transformer)** Developed by Google, T5 is a versatile language model capable of performing a wide range of natural language processing tasks by framing them all as text-to-text problems. It's trained on a large and diverse dataset to achieve high performance across various tasks. **Unique Feature:** T5's text-to-text approach simplifies the training process and makes it easier to apply the model to new tasks without requiring task-specific architectures or fine-tuning procedures. ‍ ![TechFabric-Image-Google-BERT-logo](/blog-media/e2b26a2f-6647e18ef2c127304666accc_TechFabric_Blog_Google_BERT_LLM.png) ### **BERT (Bidirectional Encoder Representations from Transformers)** Developed by Google, BERT is designed to understand the context of words in a sentence by considering both the words before and after. It's widely used for tasks like sentiment analysis, text classification, and question answering. **Unique Feature:** BERT's bidirectional approach allows it to capture the meaning of words based on their entire context within a sentence, leading to more accurate language understanding. ‍ #### So how do you choose an LLM? First off, this list is far from all the options out there. Run a quick search, or ask Chat GPT for a list, and you'll see lots and lots out there. Second, not all LLM's are general purpose. There are industry, or topic-specific LLMs, like Clinical QA BioGPT from John Snow labs created specifically for healthcare. When selecting an LLM to work with, it is often best to focus on the industry or sector you are targeting. Radiology-GPT from ArXiv, for example, would be a good choice if creating an LLM-based application for radiologists. These models are pre-trained on the area of data you are targeting, so leveraging will get you results faster. ![TechFabric-Application-Screen-Radiology-AI-Copilot-Using-Radiology-LLM](/blog-media/32b0ee39-6647ddeb7c329f101a791abd_28653ebc.png) _*TechFabric's Radiology AI Copilot application using Radiology LLM*_ One of the more common use cases for Large Language Models is in customer service. Let's say you have a problem with your internet service, and you need help. Instead of waiting on hold for a human customer service agent, you could chat with a program powered by the LLM. It could understand your problem, ask questions to figure out what's wrong, and then give you helpful suggestions or even walk you through fixing the issue step by step. Unlike standard chatbots, LLM-enabled bots are trained on specific data sets to become "experts" in that area rather than just spitting out predefined answers based on a fixed ruleset. ![TechFabric-Image-Sad-Standard-Chatbot-Without-LLM](/blog-media/63e9638a-6647ddeb7c329f101a791a9c_20cf5432.png) To get a bit technical, LLMs are based on transformers that undergo unsupervised learning, where they grasp grammar, languages, and knowledge autonomously. Unlike older computer programs that need a lot of help to learn, LLMs can learn on their own, without being told what's right or wrong. They understand how sentences work and the meaning of words all by themselves. Transformer architecture allows for extremely large models, often with billions of parameters, capable of processing vast datasets from sources like the internet, Wikipedia, or a catalog of millions of parts like a large manufacturer would have. - **Natural Language Understanding:** Large language models excel at understanding and generating human language with remarkable fluency and coherence. This ability enables them to comprehend complex queries, generate human-like responses, and perform a wide range of natural language processing tasks, such as translation, summarization, and sentiment analysis. - ‍**Versatility:** LLMs are versatile and can be fine-tuned to perform specific tasks across various domains, from healthcare and finance to entertainment and customer service. Their flexibility makes them invaluable tools for businesses and researchers seeking to automate tasks, improve productivity, and gain insights from vast amounts of textual data. - ‍**Generative Capabilities**: LLMs can generate novel content, including text, images, and even code, based on patterns learned from vast datasets. This generative capability has numerous applications, from content creation and storytelling to creative design and algorithmic art. - ‍**Transfer Learning:** LLMs can use transfer learning, a technique that allows them to transfer knowledge gained from one task or dataset to another. This approach enables faster and more efficient training on new tasks with limited data, reducing the need for extensive manual annotation and accelerating model development. - ‍**Accessibility:** LLMs have democratized access to advanced natural language processing capabilities, empowering developers, businesses, and researchers worldwide to use state-of-the-art AI technologies without requiring extensive expertise in machine learning or computational linguistics. - ‍**Continual Improvement:** LLMs benefit from ongoing research and development efforts, leading to continual improvements in their performance, efficiency, and capabilities over time. As researchers uncover new techniques and algorithms, large language models evolve to incorporate these advancements, pushing the boundaries of what's possible in natural language understanding and generation. To sum it all up, while generative AI and large language models (LLMs) represent a significant leap forward in artificial intelligence, they are game changers in how users access information. ![TechFabric-Diagram-Large-Language-Model-LLM-Overview](/blog-media/67626b7e-6647ddeba4edaac7ccdc3717_da936fd2.png) _*Basic overview of an LLM model*_ - ‍**For business**, imagine being able to access data across all systems from a single prompt, in natural language. No more hunting through logins and interfaces to find the invoice template, the latest sales report, or a specific customer order. Using an AI / LLM based application, operators simply ask a targeted question and instantly get the answer without having to access any other system or interface. - ‍**For customers**, no more waiting on hold for customer service reps or elongated calls hoping they can access and find the answers. Using an AI-enabled, LLM-based bot, the user can do this from a single prompt and often receive specific answers with greater accuracy than any human rep. The key takeaway here is how LLMs are offering unprecedented levels of natural language understanding, generative capabilities, and versatility. Their ability to comprehend, generate, and transfer knowledge across domains and systems has deep implications for industries ranging from healthcare and finance to education and entertainment, making them truly significant. LLM-based tools remove the intrinsic inefficiencies caused by humans needing to access multiple systems to find, or compile, the right data. Whether it's a customer service representative looking across multiple screens to find customer account information, or the customer themselves looking for accurate answers, the new world of generative AI and LLM models cuts through all the noise like a hot knife through butter. In the new world of AI enablement, LLMs help provide end-users access to everything they need from a single prompt, dramatically increasing efficiency with greater accuracy than ever before. --- ## How Temporal Has Transformed My Development Approach URL: https://www.techfabric.com/blog/how-temporal-has-transformed-my-development-approach Date: 2024-10-23 Author: Tyler Harker **A senior developer's perspective on adopting Temporal's durable execution framework has elevated the TechFabric development process and approach.** As a senior developer with over a decade in the trenches of building distributed systems, I've had my fair share of frustrations with application resiliency. We've all been there, wrestling with retry logic, ensuring idempotency, managing state across microservices, and praying that our workflows don't collapse under their own complexity. It was always a delicate balancing act, one that often took more time to manage than it did to develop the actual business logic. That was until I started using Temporal. To say that Temporal has changed the way I develop applications is an understatement. It hasn't just made my applications more resilient; it has fundamentally modernized my approach to development. Here's why... ### **Simplified Workflow Management** In the past, building complex workflows meant stitching together various services, adding custom retry logic, handling timeouts, and ensuring state was properly managed across different nodes. This process was error-prone, difficult to maintain, and frankly, exhausting. Temporal turns this on its head. With Temporal, I can define workflows as code, using simple annotations and method calls. The framework takes care of the heavy lifting (like state management, retries, and timeouts) allowing me to focus on writing business logic. It's liberating to know that I no longer need to glue together disparate services or worry about orchestrating complex workflows manually. Temporal does this out of the box, making my code cleaner, more readable, and easier to maintain. ### **Bringing Efficiency to Development** One of the biggest wins with Temporal is the efficiency it brings to the development process. Because Temporal handles so much of the underlying infrastructure for you, it drastically reduces the time spent on boilerplate code. I no longer need to write custom code for things like retries or distributed transactions. Temporal abstracts these concerns away, which means fewer lines of code to write, test, and debug. This efficiency extends to testing as well. Since workflows are defined as code, I can easily test them locally, with full control over the execution. This has shortened our development cycles and made our deployments more reliable. Temporal's ability to record and replay workflows has been a game-changer for troubleshooting as well, something that used to take days can now be resolved in hours. ### **Enhanced Developer Experience** Temporal doesn't just make the code more concise; it makes *me* more efficient. The framework fits naturally into existing development workflows, with support for popular languages like Go, Java, and Python. The learning curve is minimal, especially if you're already familiar with the concept of saga's. Within a week of picking up Temporal, I was already more productive at building resilient solutions than I was using other technologies. Another aspect I appreciate is Temporal's clear separation of concerns. Activities, that represent your actual business logic, are isolated from workflow definitions, which manage the orchestration. This clear delineation keeps my codebase organized and makes it easy to reason about how data flows through the system. ### **Modernizing the Development Approach** Beyond just efficiency and resiliency, Temporal has also modernized the way we approach software development. In a world where microservices and distributed systems have become the norm, Temporal provides a unified platform to manage the complexity that comes with these architectures. By taking care of state management and ensuring reliable execution, Temporal lets us build more sophisticated systems without the accompanying headaches. Moreover, Temporal's architecture aligns with the broader trend towards event-driven and serverless architectures. With Temporal, I can trigger workflows based on events, scale them effortlessly, and rely on Temporal's built-in durability to handle failures gracefully. This kind of approach wasn't just difficult, it was nearly impossible with the team sizes we typically get allocated, before we started using Temporal. ### **Temporal Is Developer-Centric** At its core, Temporal is designed with developers in mind. It reduces cognitive load by abstracting away the complexities of distributed systems, allowing us to focus on what really matters, delivering value through business logic. This shift has improved the quality of our applications and has also made development more enjoyable. As a senior developer, I can confidently say that Temporal isn't just another tool in the toolbox, it's a fundamental shift in how we build software. It has brought a new level of efficiency and reliability to our workflows, and it's something I can't imagine working without. If you're still wrestling with the complexities of building resilient, scalable applications, do yourself a favor and give Temporal a try. It might just change the way you think about development, too. --- ## Hiring Databricks Specialists: 12 Expert Insights You Need to Get it Right URL: https://www.techfabric.com/blog/hiring-databricks-specialists-12-expert-insights-you-need-to-get-it-right Date: 2024-10-23 Author: John Bellaud If you're thinking of leveraging Databricks and or prepping to start implementation, you're likely looking at hiring talent (and maybe sweating a bit trying to find the right resource). Bad hires cost the business valuable time and money, so there's a lot at stake. **We hire Databricks engineers regularly**, so we know all the challenges, but more importantly **what works and what doesn't** within organizations. In this blog, we'll share our experience and insights to help you hire the right Databricks specialists AND be the hero of your development org in the process. ‍ #### ‍**1. Start by Assessing Your Current Team** Do you have a high-functioning in-house development team or just a single engineer on staff? Does anyone have any existing experience working with data or cloud or dev ops? This is a good starting point to **assess the skillsets of your current team and identify gaps**. Beyond Databricks specialists, you're also going to need help from cloud infrastructure experts, data governance specialists, and dev ops engineers, just to name a few. If these roles don't exist within your current org, you'll want to include these in your planning. You may not need all roles full-time, but **they will come into play as you implement Databricks.** Finding a single specialist that can handle all…as they say…is like trying to find a needle in a stack of needles at a needle factory. ‍**‍** #### **2. Target the Right Resources** If you are looking to hire Databricks specialists, especially if this is your first Databricks team member, we highly recommend **leaning towards mid-strong-to-senior level**candidates. Their depth of experience is needed to manage complex data workflows and optimize Databricks and to help guide you on maximizing the platform and approach. More **junior devs will require constant direction** and guidance. The price is attractive, but you will run into gaps in both knowledge and experience they cannot overcome alone. Beyond just seniority, look for someone with**a broad range of data warehouse and systems integration experience**, Databricks shouldn't be their first rodeo with data. This is key to ensuring they can handle everything from ETL pipelines to advanced data analytics. The right resource should also be comfortable integrating Databricks with various systems so **they** **can help guide your existing team**through the challenges and get all your data sources flowing properly. ‍ #### **3. Consider Blending Talent** Make no mistake, you can find great mid-level talent, but **less-than-senior devs cannot know everything** and risk wasting time trying different approaches, over-engineering, or even getting fully blocked. For this reason, we find that **pairing a solid mid-level engineer**with a senior developer or architect****is the best combination. You get the horsepower and drive of young, agile talent with the oversight of more seasoned developers and with another BIG advantage…**controlled costs.** ‍ #### **4. Set Budget Expectations Internally** Databricks engineers can be expensive, and that's something**you'll need to budget carefully for**. With Databricks being a relatively niche skill, the demand far outstrips the supply. This means you'll face high salary expectations and potential challenges in justifying the cost if your project is still in its early stages. **If this is your company's first big data project**, then it is also likely you won't have the supporting roles necessary to deliver a complete data solution. Like any data project, **it requires many roles and steps to realize value**, so set your budgets and your stakeholder expectations squarely from the start. ‍ #### **5. Provide the Right Direction** A major hurdle when hiring a specialized role like a Databricks engineer is **defining clear expectations and direction**. If your team doesn't have deep expertise in Databricks, you risk hiring talent without having a solid roadmap for them. This can lead to frustration on both sides: your new hire might not know where to start, and your team may not be able to provide the direction needed. It's critical to identify the**specific use cases, goals, and needs for Databricks** in your business (whether it's data pipelines, advanced analytics, or machine learning) and communicate those goals clearly from the start. ‍ #### **6. Align Hiring Profile with Culture** Know how your company operates and align your candidate profile to it. If your organization takes more of a "sink or swim" approach to hires, then **a****order-taker-style developer will not work well for you**, as they need too much direction and oversight which your org will not prepared to provide. The best approach is to **map your Databricks hiring requirements**to the culture of your company. You want your new Databricks specialist to bring an approach that will answer your org's needs, whether they be working independently or joining a tightly formed and well-managed team. Keeping your organization's approach in mind and defining questions to see if new hires align with it will be key to finding the best fit. **Don't fall into the trap that skillset is everything.** In our experience approach and culture-fit matter just as much (and sometimes even more than talent alone.) ‍ #### **7. Determine Who Will Manage Them** This is a critical question. In a small team, **you may not have someone**with direct Databricks experience to manage and mentor****this hire. **You need to determine who will manage them technically** and ensure they're aligned with business goals. Without that oversight, you risk underutilizing their skills or them going off in a direction that doesn't meet your immediate needs or larger objectives. If you are reading this and don't know, be sure you have this conversation internally.****Databricks is a newer platform and requires a unique approach to maximize throughput and results. Truth is, **if no one within your organization****can provide this oversight**, you'll either need to tackle that problem along with hiring a specialist or consider outsourcing part or all, of your Databricks work. ‍ #### **8. Position to Unblock Blockers** Databricks can get complex quickly, whether it's handling Spark clusters, optimizing performance, or troubleshooting cloud infrastructure issues. The challenge here is, **who will unblock****your new resource** when they hit roadblocks? No specialist can know everything and their experience will vary, like why a pipeline fails or how to optimize distributed workloads. You'll either need to provide the engineer with access to Databricks support, whether in-house or with a consultant. Without unblocking support, **progress can grind to a halt**, and frustration will grow. ‍ #### **9. Don't Forget Training and Growth** If you do bring in a Databricks engineer, you'll need to **ensure they're not working in isolation**. Databricks is a constantly evolving platform, and your new hire will need continuous learning and development to grow with it. That means giving them access to resources, certifications, and training. But you also need to **foster knowledge sharing within your existing team**. Otherwise, you risk creating a silo where only one person holds all the expertise, which could hurt your team if that person leaves. Hint: don't forget to add ongoing training to your resource budget. ‍ #### **10. Prepare Infrastructure and Tooling** Another challenge is making sure your current infrastructure is compatible with the work the Databricks engineer will do. **Databricks is a cloud-based platform** that integrates with services like Azure, AWS, or GCP, so you need to have these systems already in place. If your infrastructure isn't ready, your new hire will be bogged down in setting up systems instead of delivering value. **If you don't have the internal teams or skillsets** to handle these areas, this may be a good time to work with a technical partner who does. ‍ #### **11. Balance Expertise and Flexibility** Databricks engineers often specialize in a specific area or set of tasks, whether that's data engineering, ML pipelines, or data warehousing. But if you're a small team,**you may need them to be more versatile**. Be aware that hiring someone who excels at complex Spark jobs may mean they're less comfortable with data visualization or DevOps work. Make sure to hire someone who aligns with your immediate needs, but also consider their strengths and weaknesses and have a plan on how you will cover these gaps. Hint: this is often why **growth companies use a mix of in-house and outsourced talent** to be sure all areas are covered without unnecessary overhead. ‍ #### **12. Ensure Cultural Fit** Lastly, hiring an expensive, highly specialized engineer in a small team can create **cultural tensions**. Your existing team might feel overshadowed by someone perceived as a "specialist", or even disconnected if they don't understand what this new hire is doing, or how it may affect their current role. It is massively important to **foster a collaborative environment** where everyone shares knowledge and learns from each other. Introducing a Databricks specialist can rock this boat, so be sure you are**setting the stage correctly**for everyone to work well together and elevate each other. Specialists need to understand they are plugging into an existing team, and the team needs to be open and ready to collaborate with the new specialist from the get-go. ‍ ## **Final Thoughts and Insights** Every CTO and engineering manager wants their new specialist to be a magic wand that can open new possibilities and solve all problems, but without the right support and structure in place, your risk getting the opposite result. Ensuring success means being prepared to provide the right direction, oversight, management, and supporting resources for your new Databricks hire. Simply dropping a new Databricks resource into the mix without accounting for these critical dependencies will only get you part of the way there, at best. Start by assessing your current team, identifying gaps, and using this checklist to compile a complete view of what you have vs what you don't. Next, meet internally with stakeholders to create a plan that can account for all areas and budgets needed to maximize the resources you hire, whether they are all in-house, outsourced, or a mix of the two. The bottom line, hiring outside your existing team's development sweet spot is never easy, but if you plan for the dependencies and gaps covered here you'll reduce the risk of a bad hire, or worse, spending months spinning your wheels (and burning budgets) without achieving the results the business is expecting. If you want to learn more or talk with Databricks hiring experts, reach out and [**contact us**](/contact) and we'll be happy to discuss and share. --- ## E-Commerce Development: Microsoft vs. Magento & Shopify URL: https://www.techfabric.com/blog/e-commerce-development-microsoft-vs-magento-shopify Date: 2024-10-23 Author: TechFabric Microsoft, Shopify, and Magento are all leading e-commerce solutions. How do the three e-commerce platforms compare? The short answer depends on the use case, and each system is a clear winner in different circumstances. When it comes to e-Commerce development platforms, it's prudent to select software that matches your technical skills, business requirements, and budget. Analyzing solutions based on ease of use, available relevant apps, customization, scalability, payment processors, SEO, Security, and the cost is an effective way to determine the best platform for your store. ![Pie chart titled: Distribution for websites using eCommerce technologies.](/blog-media/f405b9ce-67117f1bd4eb7cfa99aaf590_64c3b950a0c841d85a066063_85009cd0-683d-4f63-a1a4-ad130e9587e3_) _Popular eCommerce platforms (Source: Builtwith.com) APIs and Extensions_ ### **Ease of Use** [**Shopify's**](http://www.shopify.com/) intuitive interface allows for quickest and easiest self-service options, to a large degree drag-and-drop development. [**Shopify Plus**](https://www.shopify.com/plus) comes with a bigger feature set, so you're less reliant on third-party plugins to build your e-Commerce store. Shopify is the only platform of the three, in which a technical beginner can fully set up a working e-commerce website with relative ease. In comparison, both Magento 2.0 Open Source and its 2.0 for Enterprise are, although well documented, much more technical with steeper learning curves, with a certified partner recommended for implementation. With Microsoft, you can either develop your custom e-commerce website using tools offered by [**Microsoft Azure**](https://docs.microsoft.com/en-us/azure/architecture/solution-ideas/articles/scalable-ecommerce-web-app) or select [**Dynamics 365 Commerce.**](https://dynamics.microsoft.com/en-us/commerce/overview/) Dynamics 365 Commerce comes with a rich e-commerce feature set (similar concept to Magento, Shopify, or any pre-built e-commerce platform). You will likely need to hire a Microsoft certified partner, such as [**TechFabric**](/), to build and optimize your eCommerce store. Concerning ease of use, usability will largely depend on the success of your implementation if you go the custom route. In contrast, Dynamics 365 Commerce is super user friendly out of the box. ![Screenshot of Magento EE Admin Dashboard](/blog-media/5e9ef5b9-67117f1bd4eb7cfa99aaf587_64c3b9506182351de988f88c_e9f86eb2-21e0-4e81-bd33-c3b5ae9f9a36_) _Magento EE Admin Dashboard_ ### **Customization** Microsoft eCommerce offers a vast ecosystem of software, it's a highly customizable. You can seek the services of TechFabric to integrate micro-services and apps with your e-commerce store to enhance customer experience. You're primarily limited to the collective vision and technological capability of your team in crafting a scalable, secure, integrated e-commerce application with Microsoft Azure and related products. TechFabric has extended development even to include specific fulfillment apps used to improve warehouse fulfillment times continuously. You also can tap into products such as [**Azure Cognitive Search**](https://azure.microsoft.com/en-us/services/search/), with built in AI capabilities, or have the flexibility to build your own AI applications. ![Screenshot of Microsoft Dynamics 365 Backend Example.](/blog-media/2ee61a2a-67117f1bd4eb7cfa99aaf584_64c3b950e38d5ca4a663b2d3_5ceb94fc-2717-4fc7-bc70-80e1dfa0b6c3_) _Microsoft Dynamics 365 Backend Example_ With Shopify Plus, you get access to over 60 pre-populated, mobile-optimized, and customizable themes, or you can develop a fully custom theme. However, Shopify is by far the most limited of the three platforms when it comes to customization. You are prevented from making backend customizations and are limited mainly to the available features or third-party applications. The benefit is that by not allowing customization of the backend, the system is harder to break and more stable in the hands of novice admins. ![Screenshot of Shopify Plus Admin Dashboard.](/blog-media/376887ce-67117f1bd4eb7cfa99aaf58d_64c3b950d4bc6d90039289fb_65251bb6-c888-4ce3-884d-54be42f4ce92_) _Shopify Plus Admin Dashboard_ The Magento 2.0 EE and Magento 2 open source are much more customizable than Shopify, as developers can make both frontend and backend modifications. As is the case with Microsoft, Magento allows developers to support complex business requirements and niche workflows. ![Stats on how mobile devices affect shopping habits.](/blog-media/5e1f5d9b-67117f1bd4eb7cfa99aaf593_64c3b950a0c841d85a066103_c2e2ac9d-32c7-44b7-af43-292a8af45147_) _Mobile-optimized eCommerce store is important (Source: paulsutton.co)_ ### **APIs and Extensions** The success of your e-Commerce store relies on the effectiveness of your APIs in enabling smooth integrations. [**Dynamics 365**](https://docs.microsoft.com/en-us/dynamics365/commerce/commerce-architecture) offers several apps for operations like App Services, but most benefit comes from Microsoft e-commerce architecture that integrates with third-party APIs. TechFabric develops reliable APIs that allow clean integration with third-party apps. Shopify Plus includes enhanced API resources like [**Multipass**](https://docs.microsoft.com/en-us/dynamics365/commerce/commerce-architecture) and has over 2,400 apps while Magento Marketplace offers over 5,000 extensions. It's a good idea to map your needs in terms of integrations, analyze the integration path for any e-commerce platform under consideration, and be mindful of licensing costs for third-party connectors and integration services. ### **Payment Processing** Azure [**e-commerce architecture**](https://docs.microsoft.com/en-us/dynamics365/commerce/commerce-architecture) and Magento are integrated with multilingual payment processors and are the best choice if you aspire to expand your eCommerce store globally, there is no transaction fee. In comparison, Shopify allows you to use either Shopify Payments to transact for free or choose from 100 other payment gateways like PayPal and pay between 0.5% and 2% per transaction. If you struggle with integrations, TechFabric also offers [**API integration services**](/). ### **Search Engine Optimization (SEO)** Building an SEO-friendly eCommerce is crucial since most online interactions start with a search engine. All three solutions are SEO friendly and capable of reaching a highly optimized state. Again, in the hands of a novice, Shopify provides the most self-service tools to implement on-page SEO out of the box. Magento is fairly SEO friendly out of the box, but you can also find lots of apps to enhance the systems SEO capability. With Microsoft, you can create the box, so the solution is as SEO optimized as the team makes it. In any event, to get the most out of SEO functionalities, you need to use analytics. We develop and use analytics and [**data science**](/)solutions. #### **Cost** Standard [**Shopify pricing**](https://www.shopify.com/pricing) ranges from $9-$299 per month (plus applicable transaction fees), depending on the plan selected. Shopify Plus, branded as an enterprise platform with monthly base costs in the $2,000.00 per month range per domain. You must use Shopify payments to avoid additional transaction fees between 0.5-2%, which make up a substantial amount of the company earnings, neither Magento nor Microsoft charge transaction fees. Given that Shopify is a software as a service (SaaS) platform, hosting is inclusive in all tiers of service. Magento has three pricing models, a completely free open source version, which is an excellent option for small and medium-sized businesses looking to scale up to mid-market. Magento Enterprise Edition (EE) self-hosted, and Magento (EE) cloud version, are priced by the annual sales processed on the platform. Magneto EE and Cloud start at $32,000.00 and $52,000.00 per year for transactions up to $5,000,000.00 annually, across up to 5 domains. Licensing fees increase dramatically for high volume merchants; for example, Magento EE Cloud fees would be around $2,000,000.00 annually for a merchant doing $100,000,000.00 in annual sales. Custom pricing and negotiation can come into play for both Shopify Plus and Magento Enterprise solutions. Microsoft Azure uses a differentiated pricing model that allows you to only pay for what you need, and there are no transaction fees. Using Microsoft's WebApps web-hosting service, developers can build your e-commerce platform and deploy it on the Azure Cloud. An example is the Auto Refi Platform for iLending Direct, or retail e-commerce site [**K&L Wines**](http://www.klwines.com/). That cost model is similar to an elasticity bill; you mainly pay for your respective Azure usage. [**Dynamics Commerce 365**](https://dynamics.microsoft.com/en-us/commerce/overview/) rich feature set comes at a considerable cost of $5,000.00 per month plus $195 per month per admin user. For mid-market and enterprise customers, Microsoft's pricing model is a standout winner. Microsoft's exact pricing will depend on the precise setup of your e-commerce ecosystem and usage. From our experience, as an estimation based on a merchant doing $100,000,000 in annual sales pays around $500,000.00 per year in Azure consumption and other associated software costs, potentially 50-75% less than Magento EE cloud version, or Shopify Plus. Aside from licensing fees, one must consider development costs. Shopify provides the lowest development costs by far as you are subscribing to a fully built hosted platform. For a small business development costs could potentially be $0.00, simply not an option with Magento or Microsoft solutions. There are too many dependencies to provide useful figures in terms of development build costs for Microsoft and Magento solutions; certified partners can provide estimates based on well-documented business requirements. The most basic Magento and Microsoft e-commerce solutions start in the lower five figures and can go well into seven figures to build complex enterprise systems. #### **Scalability** Your website should handle a sudden increase in the number of customers and transactions. Microsoft e-Commerce infrastructure allows you to scale your online store application up, down, or horizontally. Shopify Plus offers higher scalability than Shopify. For instance, Shopify Plus will enable you to add unlimited staff accounts, but Shopify is limited. Also, Magento 2.0 EE is more scalable than Magento 2 Open Source. TechFabric builds highly scalable mobile and [**web apps**](/)as well as REST APIs for apps that serve millions of weekly users. With our expertise, your store can serve thousands of requests per second using horizontally scaled cloud infrastructure and have a scalable API architecture for long-term success. At Tech Fabric, we have specialized in developing and optimizing e-commerce solutions. Our expert development teams create highly scalable e-commerce web and mobile apps, APIs, and analytical solutions. We also help organizations quickly create and deploy complex infrastructure to enhance omnichannel customer experiences, sales, and overall performance. [**Contact**](/contact) our sales team to learn more. --- ## Dynamics 365 CRM - Why Are So Many Companies Migrating To It? URL: https://www.techfabric.com/blog/dynamics-365-crm---why-are-so-many-companies-are-migrating-to-it Date: 2024-10-23 Author: John Bellaud In today's dynamic business landscape, customer relationship management (CRM) systems are the backbone of successful organizations. As companies strive to streamline processes, enhance customer experiences, and drive growth, many are turning to Microsoft Dynamics 365 CRM as their preferred solution. The question is, why are so many companies migrating away from CRMs like Salesforce, Zoho, and Pipedrive and moving to Dynamics 365 CRM? ## **Clean integration with Microsoft Ecosystem:** Microsoft Dynamics 365 CRM integrates cleanly with other Microsoft products and services, such as Office 365, Outlook, SharePoint, Teams, and on and on. This connectivity provides a unified ecosystem where organizations can collaborate effortlessly, access data in real time, and use familiar tools to enhance productivity. ![](/blog-media/79f4927d-65f4d18416ad01174260f574_TF-blog-Dynamics365-CRM.png) _Basic Microsoft Dynamics 365 CRM Pre-Integrations_ ## **A Unified Data Model** With Dynamics 365 it's now much easier for your ERP and CRM software to talk to each other. The idea that you could have your operational and financial data all sharing a single common data source is a big step and opens lots of potential. In our world, this means we spend less time on custom integrations which are difficult to test and require continuous monitoring to ensure the integrations are functioning as expected. The overhead can be extremely costly. The marriage of CRM and ERP means we escape those costs and complexity, putting that time into areas where we can generate more value for our clients. ## **New & Improved Outlook Experience** In the previous version of Dynamics CRM, there was a sluggish and resource-heavy Outlook plugin for PCs. However, Microsoft introduced a new lightweight Outlook application, thatoperates significantly faster. Unlike the old "thick client" installed on your computer, this new version is a "thin client" that accesses data directly from the cloud. ![Microsoft Dynamics 365 CRM and Outlook Integration | Cargas](/blog-media/3f4a74b2-65f4c5a18d2b2a6b6cdffee8_77ac9702.jpeg) The latest version of the Outlook App in Dynamics 365 is further improved. Microsoft enhanced usability and integrated artificial intelligence into the application. This AI feature provides users with recommendations based on CRM data. For example, if an email indicates a potential customer's interest in purchasing, Outlook will suggest creating an opportunity. Similarly, if a customer requests a follow-up, Outlook prompts creating a task for reminders. ## **Expanded Functionality** Dynamics 365 CRM offers a comprehensive suite of functionalities to manage sales, marketing, customer service, and operations. From lead management and opportunity tracking to customer support and analytics, Dynamics 365 CRM provides all the tools necessary to drive meaningful interactions and build lasting customer relationships. ![](/blog-media/47f43184-65f4de56507b5647290a9a0d_TF-blog-Dynamics365-Capabilities.png) _Microsoft Dynamics 365 Functionality_ With its integration and ability to use apps like Power Automate with Dynamics CRM, the rich, built-in features are truly just the starting point. ## **Scalability and Flexibility** As businesses grow and evolve, scalability becomes a critical factor in choosing a CRM solution. Often businesses choose industry-focused CRM solutions (like Pipedrive for automotive) and then quickly run into scale issues and/or big cost increases. With Microsoft Dynamics 365 CRM, this is not a concern. It offers unmatched scalability, allowing companies to scale up or down based on their changing needs, and is fully backed and supported by the power of Microsoft's cloud. As important as scalability is its flexibility, and that's a big reason why we love it at TechFabric. Dynamics 365 CRM allows us to customize, integrate, and expand Dynamics CRM to tailor it to any of our client's specific needs and workflows. In a nutshell, Dynamics never puts us in a corner we can't flex out of. ## **AI-powered Insights** One of the standout features of Microsoft Dynamics 365 CRM is its integration with artificial intelligence (AI) capabilities. Powered by AI, Dynamics 365 CRM provides predictive analytics, customer insights, and personalized recommendations to help sales and marketing teams make data-driven decisions and drive better outcomes. Dynamics now comes with Microsoft Copilot as a built-in capability, meaning you can take action from one spot and access everything within the CRM using conversational search. ![A screenshot of a computerDescription automatically generated](/blog-media/9427ccdd-65f4c5a18d2b2a6b6cdffef2_ed51f54b.png) _Microsoft Dynamics 365 CRM with Copilot_ ## **Enhanced Customer Experience** The reality is, thatit's a hyper-competitive market out there, and delivering exceptional customer experiences matters most. Microsoft Dynamics 365 CRM enables companies to deliver personalized experiences at every touchpoint by centralizing customer data, automating workflows, and providing a complete view of customer interactions to help drive loyalty. For example, we often implement Dynamics CRM as part of a larger ecosystem that fully integrates workflows and customer transactions with Business Central ERP and commerce engines like NOP Commerce. This allows us to deliver a 360-degree, fully automated system from customer quote requests through order fulfillment and delivery in a smooth, streamlined environment. The business gains tremendous efficiency while the end customer gains total visibility, real-time status updates, and communication throughout the process. ## **Mobile Accessibility** Yes, Dynamics offers a capable mobile app that allows you to do just about everything you can on a desktop. Microsoft Dynamics 365 CRM mobile app allows users to access critical data, manage tasks, and collaborate with team members from anywhere, at any time, ensuring smooth continuity of operations. ![Microsoft Dynamics 365 Release Wave 2 2020: The Highlights](/blog-media/59116ab6-65f4c5a190230206b2ef5a6c_a769c6b5.png) _Microsoft Dynamics 365 Mobile Experience_ If this is a big consideration for your organization (how can it not be in today's climate), you won't find a more capable mobile experience in any other CRM system. ## **Overall Value & Cost-effectiveness** Cost is always a significant consideration when evaluating CRM solutions. Make no mistake, there are CRMs cheaper than Dynamics out there, but they won't offer the features Dynamics does, nor the flexible pricing options. At $65 per user (full functionality), it seems like a needlessly high price to pay, but not when you look at all the details and options Microsoft provides. For example, Dynamics doesn't force everyone into one seat. Have basic users who only need access to certain reports, etc.? You get to choose which tier users need to be in and gain savings by not being forced to put them on pro licenses. In our view, comparing Dynamics to other CRM systems is comparing apples to apple pie. Dynamics is a fully baked AND highly customizable CRM. It is guaranteed to increase your productivity and efficiency, so if you are paying more for Dynamics, it is for the right reasons and the value can be felt from day one. ## **Key Takeaways** Dynamics 365 CRM is quickly rising to the top of the market and becoming the "go-to" system for organizations across the globe. Whether they are looking for a sturdier base feature set, greater flexibility, enhanced efficiency, or smarter reporting and visibility, Dynamics CRM meets all their needs, and then some. How do we know this? As a technology solutions provider, we work with many different platforms and CRM systems. More recently, we have seen a noticeable uptick in companies looking to move towards Dynamics and seeing continued growth in those we've already migrated there. Especially for businesses already leveraging Microsoft 365 (3.5 million worldwide), its clean integration within the Microsoft ecosystem makes Dynamics 365 CRM a no-brainer. They escape the costs and headaches of endless integrations, gaining instant connectivity and automation abilities right out of the box. Simply put, Microsoft Dynamics 365 CRM puts organizations in a better position to adapt, evolve, and meet whatever needs and market shifts that arise. TechFabric is a Microsoft partner and certified in Microsoft Dynamics. Want to learn more? [Contact us](/contact) and we'll set up a time to demo and answer all your questions. ‍ --- ## Custom Software, Reasons Why They Are Good For Your Business URL: https://www.techfabric.com/blog/custom-software-reasons-why-they-are-good-for-your-business Date: 2024-10-23 Author: TechFabric **Phoenix's custom software development**scene is showing signs of growing rapidly as more and more tech companies migrate to the city and a thriving local startup scene takes roots and grows. But in this blog post, we wanted to visit the basics of what custom software is vs. other kinds in the field. Custom software can be configured as a database or stand-alone program or even a company or organization's website. There are several benefits, although the creation and configuration do tend to take more time than simpler one size fits all mass marketed software. In the long run, however, most companies and organizations find that custom solutions make their work easier and more cost effective. ## **Integrating Business Functions** Software developers design custom mobile apps while having your company in mind. These programs are crafted to fit into your organization's processes without a glitch. Their aim is to integrate the multiple functions performed by your staff within the organization. Users of custom mobile applications need not try fitting their processes into a different application. Management and employees both benefit immensely by the gains which come from adopting custom mobile apps. Procedures for training are easy, as employees would have been acquainted with the processes used. ### **Custom Software Developers Will Work With Your Company** When creating software designed for your company, [**custom software**](https://www.computerhope.com/jargon/c/customso.htm) developers will design and code it to integrate properly within your organization. The software won't just help you achieve what you need it to achieve, it will be rich in features and tools that will make it usable by the people who will be operating it. With a piece of custom software all the requirements of your company will be considered, and developers will meet these both in the way that they develop the software and the after care that they provide properly. ### **Security** The ready made software packages available to businesses and organizations today are certainly a lot more secure than the ones that have been developed in previous years, however they don't compare to the security levels of customized software. Because customized software has been created for your company it will only be usable by individuals in your company. When you purchase custom software, you will be given administrator rights to the software ensuring that you can change and alter user profiles and passwords to be in accordance with your own internal data protection policies. Customized software used on the web is also a lot harder to hack than standard, off the shelf software, and you can be sure that a reputable custom software developer will work hard to keep your application or program and the data it contains as safe and secure as possible. ### **Seek The Professionals** Building modern applications requires an advanced skillset in next-generation web and mobile engineering. Tech Fabric's experts can respond to your needs in a timely manner to provide consistent, high-quality delivery of complex projects. When you partner with Tech Fabric, we will form custom, cross-functional team that complements your strengths, coaches your team, and rapidly accelerates the development process. #### **Contact us for more information.** ‍ --- ## Create A Wide Configuration For Running Cypress In GitHub Actions! URL: https://www.techfabric.com/blog/create-a-wide-configuration-for-running-cypress-in-github-actions Date: 2024-10-23 Author: Ihor Seleznov **What is a wide configuration? What should the configuration be like? And why is it important to dedicate time to this?** ![Build a test config in 5 steps](/blog-media/6f73e697-6615947cb90f8a6cf745fe9f_test-config-graphic.jpeg) _Build a test config in 5 steps_ In the article, we will try to answer these questions, using the following technologies as examples: Cypress as a testing framework and GitHub Actions as a CI/CD tool. So, imagine you've decided to buy a car. Do you want to add any options? Perhaps automatic transmission, winter tires, climate control, or something else? A testing framework without a well-thought-out configuration is like a car without options. It can get you to your destination, but the journey is unlikely to be comfortable. Under the 'wide configuration,' we understand the ability to pass the most important options and/or arguments to your testing framework. Explaining in detail we must be able to easily run the tests in any %put the item from the list below% we want. 1. **ENV [Environment, like DEV, UAT, PROD, etc]** 2. **Browser [Chrome, Edge, Firefox, etc]** 3. **Resolution [laptop, mobile, tablet]** The following article won't contain examples of Safari usage because its configuration will be defined in a separate article. In our example, we will build out the configuration using a [default Cypress Project](https://learn.cypress.io/testing-your-first-application/installing-cypress-and-writing-your-first-test). You can apply this config to your project or check out the final configuration in [github](https://github.com/efet11/Techfabric.CLS). ‍ ### Environment configuration Let's start with a test example, look at this simple test below. The URL used in the test can be easily replaced with your project environment's URL. To accomplish this, Cypress uses environment variables. You can find detailed information about this [here](https://docs.cypress.io/guides/guides/environment-variables). **example.cy.js file:** ``` describe('spec', () => { it('test example', () => { cy.visit('https://example.cypress.io/'); }); }); ``` to easily provide environment-related data as we desire, we need to start with adding dotenv and cross-env package dependencies. Then add a script to open cypress with a specified environment. **package.json file:** ``` { "name": "techfabric.cls", "version": "1.0.0", "scripts": { "cypress:open": "cross-env E2E_ENV=.dev cypress open" }, "dependencies": { "cross-env": "^7.0.3", "cypress": "^13.6.4", "dotenv": "^16.3.1", "typescript": "4.6.3" } } ``` Now create .env.dev file with url env variable: ![A screenshot of a .env.dev file with url env variable](/blog-media/c601c119-660da8f7326b84ab36db4c52_546380db.png) _.env.dev file with url env variable:_ Then change **cypress.config.ts** configuration: ``` import dotenv from 'dotenv'; dotenv.config(); require('dotenv').config({ path: `.env${process.env.E2E_ENV}` }); const { defineConfig } = require('cypress'); module.exports = defineConfig({ e2e: { setupNodeEvents(on, config) { config.env.url = process.env.CYPRESS_ENV_URL; console.log(config.env); return Object.assign(config); }, baseUrl: process.env.CYPRESS_ENV_URL, }, }); ``` The final part is to update the test itself: ![A screenshot of a example.cy.js file](/blog-media/3e74873c-660da94c8f4ba881bc17509c_aa5a9dc0.png) _test example.cy.js file_ From this moment, we simplify variables management for cases when we jump from one environment to another, everything we need is just to pass the correct .env file (or set of environment variables) to Cypress. ![A screenshot of a computerDescription automatically generated](/blog-media/93ebae3b-660da97c2d3a5afe8f074f37_c571d0cd.png) _pass variables to cypress_ ‍ ### Browser Configuration Up until this moment, we have been using the default or selected browser. ![A close-up of a cell phone with Google Browser](/blog-media/b9b4424f-660da9afa488451e9bd9d477_fcc7a305.jpeg) _Google Browser_ The next step is to be able to use the chosen browser with preferred options. To make this happen:**‍** 1. **Update package.json scripts with chosen browsers:** ![A screenshot of package.json file](/blog-media/811e6391-660daa0691faeaa8783b6f46_d205d231.png) _package.json file_ 1. **Create browserLauncher.ts file in 'support' folder and provide desired arguments** ![A screenshot of browserLauncher.ts file](/blog-media/22a49805-660daa63b7920abdc911a024_adf9feac.png) _browserLauncher.ts file_ 1. **Update setupNodeEvents method:** ``` setupNodeEvents(on, config) { on('before:browser:launch', (browser, launchOptions) => { return launchBrowser(browser, launchOptions); }); config.env.url = process.env.CYPRESS_ENV_URL; console.log(config.env); return Object.assign(config); } ``` In result we can run any pre-defined browser and pass custom arguments. ![A screenshot of a computer codeDescription automatically generated](/blog-media/e3f60884-660daab8ae08d475f6534599_2bf7ffb9.png) _run starting_ ![A screenshot of a testDescription automatically generated](/blog-media/9f28cd12-660daacd412b02e4cd75858b_f7c7a642.png) _fun finished_ ‍ ### Resolution Preferences Defining resolutions is a bit more complex… So, before we begin with the code let's agree on some criteria: 1. **Framework must support desktop / mobile / tablet resolutions.***Desktop* resolutions: 1920x1080, 1536x864. 2. *Mobile* resolutions: Samsung S10 (360x760), Samsung Note S9 (414x846). 3. *Tablet* resolutions: Samsung Galaxy Tab A (810x1080), Google Nexus 9 (800x1280). 4. **Framework must take resolution as a single and clear argument, so we don't need to pass many details via cmd.** 5. **Browser object must be as close to the real one, as it could be.** The task seems to be quite simple since we can just pass viewport options: ``` viewportWidth: width, viewportHeight: height, ``` But in this case, we won't handle such important things as: 1. **userAgent** 2. **deviceScaleFactor** 3. **mobile type** 4. **orientation** 5. **etc** To handle all advanced options we start with resolution objects creation. 1. **Create browser config file with resolution specification and objects.** ``` // Tablet devices configurations export const tabletBrowsers = { 'tablet_810x1080': { name: 'Samsung Galaxy Tab A', width: 810, height: 1080, deviceScaleFactor: 2, mobile: false, orientation: 'portrait', userAgent: 'Mozilla/5.0 (Linux; Android 11; SAMSUNG SM-T870) Chrome/121.0.6167.160' }, 'tablet_800x1280': { name: 'Google Nexus 9, Samsung Galaxy Tab S2', width: 800, height: 1280, deviceScaleFactor: 2, mobile: false, orientation: 'portrait', userAgent: 'Mozilla/5.0 (Linux; Android 11; Nexus 9) Chrome/121.0.6167.160' } }; ``` ![A screenshot of browserConfig.ts file](/blog-media/a42a0634-660dabbb1b4b8eeec459e989_cc002863.png) _browserConfig.ts file_ 1. **Update browserLauncher, now use resolution and browser type from browserConfig file:** ![A screenshot of a browserLauncher.ts file](/blog-media/a949e0be-660dabfc132ce03452bf765b_114bbfe8.png) _browserLauncher.ts file_ 1. **Update cypress.config.ts, now pass resolution and set viewport options** ![A screenshot of cypress.config.ts file](/blog-media/70703559-660dac4fe61c2a10bf893b72_f8ae3708.png) _cypress.config.ts file_ 1. **Update package.json scripts:** ![A screenshot of a computerDescription automatically generated](/blog-media/d1a2a297-660dac6dd58b8f639efe9922_082bc3ba.png) _package.json file_ As a result of the previous setup, we can run the tests in the chosen environment, using the preferred browser with the desired resolution and capabilities. Now time to integrate it to CI/CD so everyone benefits from the tests. ‍ ### CI/CD Integration ``` name: Run Cypress using Wide Configuration on: workflow_dispatch: # allow for manual execution inputs: choice_browser: type: choice description: Select browser options: - chrome - firefox - edge choice_environment: type: choice description: Select environment options: - dev - uat - prod choice_platform: type: choice description: Select platform type options: - desktop - tablet - mobile choice_resolution: type: choice description: Select screen resolution options: - 1536x864 - 1920x1080 - 360x760 - 414x846 - 810x1080 - 800x1280 jobs: cypress-tests: name: Run Cypress runs-on: ubuntu-latest environment: dev steps: - name: Checkout repository uses: actions/checkout@v3 - name: Install dependencies run: npm install - name: Run tests in ${{ github.event.inputs.choice_browser }}-${{ github.event.inputs.choice_resolution }} run: | npx cross-env E2E_ENV=.${{ github.event.inputs.choice_environment }} BROWSER_TYPE=${{ github.event.inputs.choice_platform }} RESOLUTION=${{ github.event.inputs.choice_resolution }} cypress run --browser ${{ github.event.inputs.choice_browser }} ``` After configuration is applied, we can start the test run, just select your options from the list in boxes: ![A screenshot of a computerDescription automatically generated](/blog-media/464660c0-660dad4090bd09743065aed2_0a56d350.png) _select your configuration_ And check the result: ![A screenshot of a computer programDescription automatically generated](/blog-media/6f967eee-660dad494a0b5947bd1c8b98_9e51b998.png) ‍ ### Summary Today, we've reviewed how to build a testing framework that is flexible enough to accommodate client needs such as custom environments, browsers, options, and resolutions. We've also integrated everything into CI, so the development or automation QA team can benefit from our solution and everyone on the team can run the test suites with just a few clicks. Check out this test project in our [GitHub repository](https://github.com/efet11/Techfabric.CLS) and apply useful configuration parts to your project. Good luck and see you later! ‍ --- ## Breaking Down Silos: Integrating AI Across Business Functions URL: https://www.techfabric.com/blog/breaking-down-silos-integrating-ai-across-business-functions Date: 2024-10-23 Author: Leo Oliemans In today's business world, Artificial Intelligence (AI) and Machine Learning (ML) aren't just buzzwords, they're powerful forces revolutionizing how we work. These technologies are changing everything from how we run operations to how we interact with customers, making businesses more efficient and sustainable. Companies like KLM are already showing the world what's possible with AI. AI's potential spans across various business functions, promising unparalleled efficiency and sustainability cutting down on food waste and paving the way for a future where efficiency and environmental responsibility go hand in hand. ## **Breaking Down Silos** Business functions have traditionally operated in silos, with each department focusing solely on its own tasks. While this setup has its benefits, it can also hinder collaboration and the flow of information. To truly harness the power of AI, we need to break down these barriers, and integrate it cleanly across all aspects of our operations. ### **Strategies for AI Integration** 1. **Unified AI Vision**: Establishing a unified AI vision that aligns with the company's overall objectives is crucial. This vision should articulate how AI can support each business function, ensuring all departments are aligned towards the same goals. 2. **Cross-Functional Collaboration**: Creating cross-functional teams that include AI experts and representatives from each business unit encourages a collaborative approach to AI initiatives, ensuring they are relevant and beneficial to each department's unique needs. 3. **AI Literacy and Training**: Investing in AI literacy for the workforce demystifies the technology and empowers employees to identify opportunities for AI integration within their functions, driving innovation from the ground up. 4. **Leveraging Data as a Unifying Asset**: Centralized data management practices that ensure accessibility and quality across departments are essential. This facilitates the development of AI models that draw on comprehensive, cross-functional datasets, enhancing their applicability and impact. ### **Case Studies of AI Integration** - **Amazon's Waste Reduction Initiatives**: Amazon's journey in reducing packaging waste epitomizes the innovative application of AI to enhance operational sustainability. Through the deployment of deep learning and a multimodal approach combining natural language processing with computer vision, Amazon has fine-tuned its packaging process. This AI-driven initiative has led to a substantial reduction in packaging waste, achieving a 36% decrease in per-shipment packaging weight and eliminating over a million tons of packaging material. This equates to sparing the environment from the disposal of more than 2 billion shipping boxes, underscoring the tangible environmental benefits of integrating AI across business functions. The crux of Amazon's success lies in its ability to adaptively predict the optimal packaging for a vast array of products, circumventing the limitations of manual inspection and generic packaging rules. By analyzing a wealth of data from customer feedback to detailed product descriptions and images captured at fulfillment centers, Amazon's AI models have mastered the art of determining the most suitable packaging type for each product. This contributes to waste reduction and enhances customer satisfaction by ensuring products are delivered safely and sustainably. - **KLM's AI-driven Waste Reduction:** KLM, the Dutch flag carrier, has innovatively applied AI to drastically reduce waste in its inflight catering services. Utilizing the Trays AI model, developed in collaboration with Kickstart AI and contributions from leading companies, KLM has optimized its meal planning process. This AI model enables precise predictions of passenger numbers across various travel classes, improving from 17 days ahead of departure until just 20 minutes before takeoff. Such accuracy in forecasting allows KLM to tailor its catering orders closely to actual demand, thereby significantly minimizing food wastage. This initiative has led to a remarkable potential reduction in food waste of up to 63%, translating to over 100,000kg of meals saved annually. Particularly on intercontinental flights from Amsterdam Airport Schiphol, the implementation of the Trays system has shown considerable reduction in meal wastage, highlighting significant improvements and underscoring the model's effectiveness in enhancing sustainability across the airline's operations. ## **Overcoming Implementation Challenges** AI integration across business functions presents several challenges such as data quality issues, cultural resistance, and skill gaps. Addressing these challenges requires a commitment to continuous learning, ethical use of AI , and fostering an AI-centric culture that embraces innovation and collaboration. **Conclusion** Integrating AI across business functions is a strategic imperative for companies aiming to enhance profitability and operational efficiency while contributing to environmental sustainability. By breaking down silos and fostering a culture of collaboration and innovation, businesses can unlock the full potential of AI, transforming their operations and setting new standards of excellence in their respective industries. ‍ --- ## Automotive Innovation Center Accelerates Digital Transformation URL: https://www.techfabric.com/blog/automotive-innovation-center-accelerates-digital-transformation Date: 2024-10-23 Author: Preetham Reddy At API World today in San Jose, California where TechFabric is exhibiting, we're announcing an Automotive Innovation Center within TechFabric, established to help sellers across the automotive and fintech industries accelerate their digital transformation initiatives. Having worked extensively with clients in the Automotive and Fintech industries, TechFabric has built integrations with hundreds of third parties including LOS providers, refinance lead sources, credit bureaus, NADA, Speed Ship, Ring Central, Twilio etc. Drawing upon their experience in building applications in Automotive, TechFabric created a unique component-driven framework called Auto Fabric with various modules frequently used by companies in the Automotive and FinTech Industries. Leveraging the Auto Fabric framework to build Line of Business applications can significantly reduce the time it takes to bring an application to market while guaranteeing the safety, security and reliability of the overall solution. Microservices (APIs) are emerging as the most strategic method of achieving speed and operational efficiency in application development and are fast becoming the backbone of today's modern enterprise systems. APIs allow organizations to unlock their business value by giving partners access to data and capabilities at scale. ![Automotive Technology Sphere](/blog-media/1c90989e-64c3c1555e29b4b4ced48a4b_79ed5ac2-1032-47f7-aeaf-445e2a536165_5e7cce4943de6b133a0bf8ec_) The convergence of automotive and fintech has resulted in what we at TechFabric consider amazing opportunities to create compelling, newly streamlined user experiences that will drive the new rules of success for lenders, manufacturers, aggregators and other providers in the automotive and fintech markets. The ripple effect created by the efficiencies of an API-led approach can result in growing revenues, increased customer satisfaction and the ability to do things which were previously un-achievable. The Automotive Innovation Center focuses on building collaborative processes and integrations with partners to explore and co-create novel experiences for end users by leveraging the power of cloud infrastructure and automation so customers can achieve their business goals more quickly and with a high rate of return. If you are at API World this week, come see us at booth #111 where we'll be distributing our new white paper Microservices are Changing how the World does Business, for Good. If you're not attending, no worries, you can [**download the new white paper here**](https://techfabricstorage.blob.core.windows.net/ebooks/TechFabric.API%20Whitepaper.92419.pdf). Tech Fabric is a full service software development company specializing in helping Enterprises with Digital Transformation. #### **For more info, reach out to us.** ‍ --- ## Agile, Scrum, Kanban, or Waterfall? URL: https://www.techfabric.com/blog/agile-scrum-kanban-waterfall-the-insiders-guide-to-choosing-the-right-development-methodology Date: 2024-10-23 Author: John Bellaud ![TechFabric Lead Image Agile Methodologies Generic](/blog-media/82fa116d-6660e9d0384d12af20168496_TechFabric-agile-methodologies-pros-cons-1600.jpeg) ## The Real Insider's Guide to Choosing the Right Development Methodology Anyone in the software world knows application development is complex. Hundreds of details and dependencies must come together on time and on budget. Productivity is at a premium, and choosing the right development approach can make a big impact on the outcome. Since the first application was created, agile teams have developed and evolved different approaches or "methodologies" to better manage and control the process and deliver successful software outcomes. Scrum, Agile, Kanban, and Waterfall are four of the most popular methodologies that have shaken out of this evolution. Each has advantages and disadvantages, and we will share our experience and insights on each and when, where, and why we use them. ### Scrum Methodology (Productivity & Popularity) Scrum is a popular approach that focuses on iterative progress, team collaboration, and adaptability. By breaking down the project into 2-4 week cycles or "sprints", scrum allows teams to focus on delivering specific features or smaller chunks of functionality that can be accomplished within each cycle. This approach means agile teams work in close concert, gain immediate feedback, and make necessary adjustments rapidly. ![TechFabric Screenshot Example Scrum Board](/blog-media/8148e73f-6660e83e82c7a613d6d9d041_TechFabric_Internal_Scrum_Board_Sample.png) _*TechFabric Scrum board (Azure Dev Ops) - Marketing team* ‍_ Each scrum cycle starts with a planning or "grooming" session where all parties (business, product, and development teams) come together to plan out the upcoming sprint. This creates cross-team collaboration and gives everyone a chance to weigh in, while stakeholders set priorities and agile teams estimate the level of effort to determine what can be accomplished in the cycle. In scrum, teams stick within a tightly managed process with specific milestones and ceremonies to increase efficiency with each new sprint. Each cycle begins with planning and ends with a functional demo to showcase the work completed. **Scrum Pros:** - **Iterative Development:** Short dev cycles and incremental builds allow for rapid innovation and pivots when and where necessary - **Increased Flexibility:** Designed to adapt to changing requirements and priorities, allowing for quick adjustments to meet evolving customer needs. - **Greater Transparency:** Teams aren't working in dark backrooms delivering only when they have something to show. Scrum teams work closely together, collaborating and reporting daily, giving stakeholders maximum visibility and control. - **Empowering Teams:** Scrum is all about self-organizing teams and giving desi and developers the freedom to determine the workflows and collaboration style that work best for their specific team. - **Know We're Building the Right Product:** With regular feedback loops built into the process, teams know they are on the right track, and with shorter cycles, teams can pivot quickly when business demands shift. **Cons:** - **Complexity:** To effectively run scrum, all team members must have a thorough understanding and adherence to its process. Teams new to scrum take time to shift and fully adopt. - **Dependency on Team Collaboration:** Success relies on collaboration and strong communication. If there are issues in team dynamics, it can hinder progress. - **Fixed Iteration Length:** The fixed iteration length (sprint) can sometimes lead to pressure to deliver within the timeframe, which can affect quality when/if priorities overlap and are not addressed. - **Initial Resistance:** Transitioning can be tough. Change can be scary to development teams, especially if they have deadlines bearing down on them. - **Risk of Scope Creep:** Without proper control and stakeholder understanding of the process, there's a risk of scope creep as changes are welcomed throughout sprint cycles. ***Insider Tip:*** If you are using or moving to scrum, set expectations with clients and internal teams that it takes a sprint cycle or two to get fully aligned and able to judge team efficiency. This is normal so don't smash team morale if the first sprint doesn't hit all the original points planned. It also takes a sprint cycle or more to understand velocity (avg. story points completed within a sprint). Common sense tip - if you don't know the team's velocity yet, how can point goals be set and/or expected? ### Agile (a.k.a. True Agile): Agile is exactly what the name describes, *agile*. Often used by startups and incubators, agile is all about solving problems and maximizing adaptability, in real time. It can be confusing as agile is a term that means two things. It is the philosophy that drives all modern approaches, e.g. scrum, but in the functional dev world, we use it to describe a unique methodology all its own, and we call that true agile inside our teams. ![TechFabric Screenshot Example True Agile Board](/blog-media/b7e6b390-6660e85525e893d5caa52726_TechFabric-agile-methodologies-true-agile-board-example.png) _*Example of a True Agile board ‍*_ Think of true agile as a task force brought together to solve a specific problem. Once the problem is defined, cross-functional team members work together to rapidly flush out a prototype, then iterate on it to bring it to a fully-fledged feature. Agile is about roughing out functionality to quickly gather feedback and adapt to it in real-time. **Pros:** - **Prove Out or Fail Fast:** Rapid prototyping allows teams to validate faster and more often helping them determine if they should move forward or pivot without wasting time. - **Adaptability:** Probably the area that matters most in software development, and one of the biggest benefits of going agile. - **Enhanced Collaboration:** Agile depends on it, its that simple. Team members have to be savvy collaborators to allow the best ideas to bubble up from a cross-functional team, and one that may be working together for the first time. - **Reduced Risk:** The iterative nature of agile spends less time to get to testable prototypes so the risk of losing time going down a long, unproductive road is greatly reduced. - **Continuous Improvement:** Agile encourages teams to optimize and get better with each iteration to maximize their ability to innovate and deliver. **Cons:** - **Lack of Predictability:** Agile methodologies may lack predictability due to the ever-changing nature of requirements and priorities. - **Documentation:** Agile often prioritizes working software over comprehensive documentation, which can be challenging for teams operating in highly regulated industries. - **Dependency on Team Dynamics:** Success in Agile relies heavily on collaboration and dynamics within the team. If there are issues, it can affect productivity. - **Resource Intensive:** Agile requires dedicated participation from team members, making it resource-intensive, especially for smaller teams or organizations. - **Customer Involvement:** Agile requires active participation and involvement from the customer throughout the development process, which may not always be feasible or practical. ***Insider Tip:*****Agile has a ton of benefits and serious innovators love it, but using it with clients can be challenging. The adaptive nature of agile makes reporting to stakeholders fuzzy and more difficult. Take enterprises, for example. They have many approval points, compliance needs, branding teams, and more that don't pair well with adaptive pivots and non-linear outcomes. Truth be told, in our world it is a rare client who can handle agile. We tend to use it more for internal projects and products we create where we can control the dependencies and be free to innovate and iterate. ### Kanban (Old School but Effective): Created back in the 1940s by an engineer at Toyota, Kanban is both a visual workflow management methodology and a unique way of developing rolled into one. In Kanban, the process is less driven by time or cycles; and focused more on moving task cards through phases until a feature (or area, etc.) is complete. ![TechFabric Screenshot Example Kanban Board](/blog-media/e21675db-6660e865384f20d4ed920a9f_TechFabric-Kanban-Board-Example-Design-UX.jpeg) _*Example of a basic Kanban board* ‍_ This approach uses a state-based board to represent work items and their stages. Teams can easily see the status of tasks and moving them through the board's stages, work together to bring them to a finished state. Kanban's transparency facilitates better communication and collaboration among team members, ensuring that tasks are prioritized and handled efficiently. When requirements evolve and change constantly, Kanban can be your best friend. Kanban's core principles of "focus on less and deliver more" enable teams to respond swiftly to changes and maintain a steady flow of work. **Pros:** - **Visual Workflow:** With the whole team focused on one board and visualized workflow, it is easy to identify bottlenecks and optimize the process. - **Flexibility:** Teams have the freedom to reprioritize tasks and adapt to changing conditions as they see fit without disrupting the goals and workflow. - **Efficiency:** By limiting work in progress (WIP), Kanban helps optimize the flow of work through the teams maximizing efficiency. - **Cut Time-to-Market:** Continuous delivery is core to Kanban, ensuring that work items are delivered as soon as they are completed, leading to faster time-to-market. - **Simplicity:** Kanban is relatively simple to understand and implement, making it easy for teams to adopt and optimize over time. - **Great for Short Cycles:** Not every software project lasts for months or years. If you are looking at 6 weeks or less of development time, Kanban will often be a better choice as with scrum, you might get 1.5 sprints, which is not enough to gain all the benefits of that approach. **Cons:** - **Dependency on Visual Management:** Success Kanban projects rely on visual boards, which may not always be feasible for distributed teams or complex projects. - **Risk of Overloading:** Without putting rails on WIP, there's a risk of overloading the team with too many tasks and seeing diminishing returns in productivity and quality. - **Lack of Process:** Some teams can be challenged by the lack of process and expectation that they will self-manage through the tasks they are assigned. - **Limited Planning:** Its all about speed and focus with Kanban, not long planning or grooming sessions. By breaking out smaller, individual tasks, devs can move on them with less planning - **Hinges on Continuous Improvement:** Success in Kanban depends on the team's commitment to continuous improvement and optimizing the workflow, which can require more effort from the team. ***Insider Tip:*** Kanban is not our go-to methodology, but it does have its place. When the project timeline is 6 weeks or less (rare but happens), we will often use Kanban as there isn't enough time to effectively use scrum. The other use case is when new showstopping requirements come up without warning, but deadlines cannot change. It might be a security change with an upstream partner or another unforeseen opportunity that drives a temporary, but necessary, pivot. Using Kanban in these moments allows us to quickly put all our focus on one area, divide up tasks and rapidly develop a solution to meet the immediate need. ### Waterfall (A Necessary Evil?): Waterfall is a more linear approach that, while often vilified, still has a big seat at the development table. Waterfall focuses on doing things in logical order (requirements gathering, design, implementation, testing, deployment, and maintenance) and completing one phase before starting the next. ![TechFabric Waterfall Methodology Flow Diagram](/blog-media/a8da4066-6660e880032018ec88734553_TechFabric-agile-waterfall-methodology-diagram.jpeg) _*Waterfall project flow (typically managed using Scrum board)* ‍_ Waterfall works particularly well when the need for innovation is minimal and/or the process requires lots of approvals and coordination. A good example would be a loan application intake system. There may be small innovations in the UX approach, but overall the solution and outcomes are clear. Using waterfall, or a combination of waterfall and scrum (sprint cycles but within a linear development track), works well here as it allows teams to gain the necessary approvals while building high confidence in client stakeholders as each phase is completed. A word of caution on this approach. While waterfall may be great for stakeholder visibility and feedback, it is less desirable to development teams. The project's requirements roll downhill to them, with front-end solutions often baked in before developer input, which can increase risk. **Pros:** - **Defined Project Scope:** Most waterfall projects start with a fairly well-defined problem and desired outcome. This gets codified and validated through the design phase, so by the time that is complete the functionality and scope are well defined and unknowns minimized. - **Structured Approach:** Waterfall provides a logical, structured framework for development that is easy for stakeholders and teams to follow and stick to. - **Stakeholders Love It:** Try running true agile with an enterprise client. They will struggle, become frustrated, and feel there is a lack of progress toward goals. If you want to keep stakeholders happy and gain confidence throughout a project, waterfall is often your best approach. - **Feedback Before Code:** A big advantage is the ability to use design and UX prototypes to run user feedback loops and flush out additional requirements prior to writing a line of code. - **Better Estimations:** Its linear nature often means designs are completed before development providing developers with highly detailed requirements to work from, resulting in tighter, more reliable estimates. - **Documentation:** Waterfall allows for comprehensive documentation at each stage of the project, ensuring clarity and traceability of requirements and decisions. **Cons:** - **Limited Flexibility:** Waterfall lacks flexibility, making it challenging to accommodate changes in requirements or priorities once the project is underway. Developers don't like this because they are often "locked in" on how to develop, and client product or customer teams will be easily frustrated finding out new things they want to add must be pushed to phase II. - **Collecting All Feedback:** Waterfall may enable rapid feedback prior to laying code, but there is a hitch. It is not uncommon for high-level approvers/stakeholders to wait to see the application until all major areas are built. This delayed feedback can wreak havoc on a project, create dissatisfied stakeholders, and demoralize a team. - **Higher Risk:** Waterfall may seem like the most logical development approach, but it can come with high risks. The "solution" is being fully baked at each stage, so it pivots or changes are required later in the process, it can risk throwing away large chunks of work delaying releases, and driving up costs. We have even seen scenarios where business or market shifts have made an application irrelevant by the time it gets through the waterfall process. - **Delayed Releases:** Where scrum and agile advocate releasing more often to learn and perfect, waterfall delays releases, typically until the entire application has been built, tested, and approved by all departments. This is why waterfall often works best with outcomes that are "set in stone" with known timelines. - **Limited Collaboration:** By its nature, waterfall encourages a more siloed approach. It takes strong product owners to ensure collaboration is fostered in every phase, and often has to happen behind the scenes. - **Good Developers Hate It:** True innovators and senior coders have a disdain for waterfall. It often puts them at the back of the bus, with solutions planned with little to no input from them and based on the "best thinking" of non-developers or architects. On the other hand, less innovative devs often love it because they have a clear roadmap and requirements to build against. ***Insider Tip:*** Waterfall may be your best option when working with larger clients, or on well-defined (and reasonable) scope and timelines. It will provide the visibility that client stakeholders and management teams need to show steady progress. But, if choosing waterfall, you must bring the entire team together to collaborate and review each solution in each phase to ensure their input is included throughout. Waiting until design is locked to introduce developers to the project pushes the risk meter way up (if a developer hasn't blessed designs from a functional standpoint, how do you confirm everything can fit within time/scope?). Be mindful of this flaw and do what is necessary to counteract it. ‍ ![TechFabric Logo Icon](/blog-media/fedb9f6b-6660ecb210461902afa965ec_TechFabric-logo-brand-icon.png) ## **What Our Teams Use & Why** In our development process we are considered an "agile scrum shop", meaning scrum is our core and some version is used 80-85% of the time. That doesn't mean we don't use agile, Kanban, and waterfall as well, but in our world, those have more specific use cases so they are not our go-to approach. To shed a little more light: - **We Like Scrum:** Sprint cycles give us a good balance between innovation, prioritization, and visibility. Clients and teams like the two-week cycles and checkpoints and it gives us a method to control scope (x points per sprint can be achieved) and cycles aren't so long that we cannot adapt or pivot as conditions change. - **We Go Hybrid Often:** Scrum may be our core, but we often create hybrids of agile-scrum or waterfall-scrum. Hybrid allows us to get the best from both worlds, without disrupting our focused processes. For example, we may use waterfall to create a staged approach and meet the internal approval needs of a client, but we will do it in 2-week sprint cycles to gain the benefits of and better control scrum offers. - **We work with external teams often:** Working with larger organizations and their internal teams, we have to be flexible with our approach. If the client teams are running waterfall and we're doing agile, there will be significant disconnects throughout the project. Our goal is one of two things depending on client teams:Join in on their existing approach. If it is successful for them and creating workflow and outcomes, why not work with what is already in place? - Level up their team. If client teams are struggling to find the right approach, we will introduce scrum, show them the advantages in real time, and work to help them fully adopt and optimize. ‍ ![TechFabric What Matters Takeaways Image](/blog-media/f0063a1c-666211b23ccefdf93fb6a10f_TechFabric-takeaways-divider-graphic-development-methodologies) ## **Final Tips & Takeaways** Let's sum this up in short form so you can use in your planning, share with others on your teams to create a common foundation of principals and areas you can start actioning on. - **Start with Your Team:** Talk to them and find out what experience they have and what they feel could work best given the project requirements and timeline. When teams have a say in the approach, they are much more likely to enthusiastically adopt and optimize it. - **Focus on dependencies:** There is no one size fits all. Look at the dependencies including:Is the outcome of the project clear and achievable, or does it require novel innovation to solve? (predictable lends to waterfall/scrum, innovation leads to agile/Kanban) - Is it an internal or external project? (internal projects are far more friendly to agile or Kanban, where client projects will often benefit from waterfall, scrum or a hybrid of the two) - How long is the project cycle? (shorter timelines make scrum more challenging, look at Kanban for these) - What your team has the most experience in and what would it take to transition them to a new approach? (lower the barrier of entry) - What methodology client, or 3rd party teams currently using? (being in sync can benefit workflow & reporting/visibility) - How many approval points and/or departments will need to weigh in on the solution? (more leads towards waterfall/scrum hybrid, less leads to agile/Kanban/hybrid) - What level of stakeholder visibility is needed? (same as above) Methodologies can be combined: Hybrid is often the best path to create the right approach (e.g. Waterban (Waterfall + Kanban), or Agilescrum (Agile + scrum)Team training may be necessary. Teams, or individual members, may be practiced at certain methodologies but have little experience in others, so put a training plan in place prior to the project start and do some test runs to work it through.Educate yourself: There are oodles of resources out there to help you. Once you have selected the direction you feel will work best, you can go onto sites like YouTube, Reddit, and scrum.org to get more insider tips and areas to avoid so you can arm yourself and cut down on unknowns that arise from inexperience. As a final note, if you are building processes from the ground up with a team that has not worked together before, scrum is probably your best target. It's controlled but flexible framework helps keep projects on track just by using its natural state. As you see how scrum and sprint cycles work for your team, you can adjust, optimize, and get a view of what is working and/or what may work better. ‍ --- ## Accelerate Automation: Power Automate Revolutionizes Productivity URL: https://www.techfabric.com/blog/accelerate-automation-power-automate-revolutionizes-productivity-the-top-5-reasons-you-should-be-using-it Date: 2024-10-23 Author: Karan Sharma ## And Top 5 Reasons You Should Be Using It ‍ In today's fast-paced digital landscape, businesses are racing to embrace automation and find new pathways to productivity. While every organization is looking for automation solutions, efficiency gains and lower operational costs, turning this vision into reality poses real challenges. Which tool is right for us? Automation is what we need, but how do I fit it into today's budgets? How will adopting a new tool affect our current timelines? These are all good questions any business will ask. Let's dive into how Power Automate is simplifying the complex automation playing field and the **top reasons every organization should be adopting it**. ![Microsoft Power Automate, Process Automation Platform | Microsoft](/blog-media/9bf40092-65bd3551a7f386f5b44baa7d_35ff4095.png) _*Power Automate Process Map View*_ ### **Reason #1: Embracing Automation at All Levels** Automation isn't just about top-down or bottom-up approaches, it's about integrating it across all levels of your organization. Power Automate provides customizable solutions that can scale incrementally and suit different development approaches. Meaning, Power Automate can work in just about any environment, with any dev approach, and any use case. **Specifics include:** - Customizable solutions for any environment, tech stack or use case - Incremental scalability (start small, grow from there) - Suitable for various development approaches, no "one-size fits all" - Ongoing optimization and productivity enhancements (you've got Microsoft's full shoulder behind this ensuring it is a step-ahead of the market) ![Power Automate Data Flow Overview (Microsoft Ecosystem View)](/blog-media/3f78966d-65c411bce8fbac9c30e440e2_TF-blog-power-automate-1.png) _*Power Automate Data Flow Overview (Microsoft Ecosystem View)*_ ### **Reason #2: Microsoft's Power Automate as a Gateway** A powerful, yet simple, tool for initiating your automation journey, Microsoft's Power Automate, part of the larger Power Platform suite provides out-of-the-box solutions and options for creating customized automations. It offers users a plethora of custom-built connectors to choose from with regular fresh additions being added regularly. **Power Automate works with all Microsoft tools & applications including:** - Microsoft Office 365 (Outlook, Excel, SharePoint, etc.) - Microsoft Dynamics 365 (CRM, ERP, Business Central, etc.) - Microsoft Power Platform (Power BI, Power Apps, Power Virtual Agents) - Microsoft Teams - Microsoft Azure services (Azure Blob Storage, Azure SQL Database, etc.) ![Power Automate works with all Microsoft Tools](/blog-media/0d71ab42-65c411f2da91ad142cbd704b_TF-blog-power-automate-2.png) _Power Automate works with all Microsoft Tools_ **Power Automate also works with tons of 3rd party apps including:** - Salesforce - Google Workspace (formerly G Suite) - Twitter - Dropbox - Slack - LinkedIn - Facebook - Mailchimp - Zendesk - Trello - NOP Commerce (+ other commerce engines) - & many, many more Power Automate's architecture/design interface is highly modular, and you don't need to be a coder to enable or update it. Once you build flows and connections between apps, you can copy, edit, reapply and build on top, to quickly to create other complex flows in no time. Moreover, Microsoft has created libraries of pre-built flows and connectors for you to choose from that cover a range of common use cases and set up an automated process in just a few clicks. Gone are the days of groups of large IT teams and budgets to automate processes, with PA's low-code environment, anyone can! ### **Reason #3: Budget-Friendly Automation** Budgets already set in stone or cuts in IT expenditures from last year? Power Automate to the rescue. PA is an excellent platform for organizations with varying budget constraints. Users start with easy automations for everyday tasks and gradually progress incrementally to more complex and scalable solutions, making it a cost-effective approach to greater efficiency. ![A screenshot of a computerDescription automatically generated](/blog-media/b5f3a42d-65bd3552103f25c005139c1a_6725f7f6.png) _*Power Automate Pre-Built Productivity Flow Libarary*_ ![What is Power Automate? Codeless Automation for the Cloud | ITPro Today: IT News, How-Tos, Trends, Case Studies, Career Tips, More](/blog-media/be1485c8-65bd355129ba09086cd9c2f7_a858512d.png) _*Power Automate Flow Builder & WYSIWYG Interface*_ The fact that it is easy to use with a quick learning curve, low-code design interface and resource light nature further adds to its utility, significantly cutting down not just the development/testing resource costs, but also the long-term maintenance costs. ### **Reason #4: Artificial Intelligence (AI) Integration** In the era of AI dominance, Power Automate stands out. with its 'AI builder' add-on. PA facilitates the implementation of pre-built and custom AI models for various use cases. ![AI Builder Infographic](/blog-media/162d9242-65c41254c7d31efb058f9d09_TF-blog-power-automate-3.png) _AI builder_ **Some examples of AI builder's features and use-cases include:** - **Document Processing:** Allows users to use capabilities like OCR to convert just about any flat document (PDF, jpg, etc.) into live text data automatically. - **Predictive Analysis:** Through AI capabilities, Power Automate can analyze historical data to make predictions and optimize workflows, enhancing decision-making processes. - **Sentiment Analysis:** Utilizing AI, Power Automate can analyze sentiment from text inputs (like emails or social media messages), enabling automated responses or workflow adjustments based on emotional context. - **Image Recognition:** Power Automate uses AI for image recognition, enabling automation of tasks such as identifying objects in images, processing invoices, or categorizing content. - **Process Automation:** AI integration in Power Automate enables intelligent process automation, where workflows adapt and optimize based on real-time data and user interactions, enhancing efficiency and accuracy. Microsoft is pioneering in the AI space, and new capabilities within Power Automate, including the existing integration with ChatGPT, are being released constantly. ### **Reason #5: Pre-Built AI Models** The integration of AI builder features puts Power Automate at the forefront of automation technology. This integrated builder covers a wide spectrum of AI applications, be it document processing, OCR, language processing or text recognition, to name a few common use cases. ![Introduction to Power Automate Desktop: Features & Use Cases](/blog-media/6b5a538d-65bd35510128d5fee73aace6_8528d3fc.png) The pre-built models significantly reduce development costs and time to market, and we're using it regularly for areas such as (but not limited to): - **Customer Service Automation:** Power Automate can use AI to automate responses to customer inquiries, classify and prioritize support tickets, and route them to the appropriate teams for resolution. - **Sales Automation:** AI integration in Power Automate can analyze customer data to identify leads, predict sales opportunities, and automate follow-up actions such as sending personalized emails or scheduling meetings. - **HR Automation:** Power Automate with AI can streamline HR processes by automating candidate screening, scheduling interviews, onboarding tasks, and analyzing employee feedback for sentiment analysis. - **Financial Process Automation:** Power Automate can automate financial processes such as invoice processing, expense tracking, and fraud detection using AI for data extraction, validation, and analysis. - **Supply Chain Optimization:** Power Automate uses AI to optimize supply chain processes by predicting demand, automating inventory management, and identifying potential disruptions for proactive resolution. The reliability of pre-built models, addressing diverse scenarios such as sentiment analysis and predictive maintenance, shows the platform's versatility and Microsoft's commitment to AI today and into the future. ‍ #### **Key Takeaways** There is no shortage of reasons every organization should be looking to adopt Power Automate solutions, but here's a quick recap of the points that matter most: **Works just about anywhere:** PA is highly customizable and integrates automation across all levels of your organization, regardless of the environment, application or use case. **Integrates with just about everything:** As part of Microsoft's Power Platform suite, PA is pre-integrated with all Microsoft products and loads of 3rd party and widely used applications. **Not just for developers:**Power Automate provides a user-friendly interface, tons of pre-built connectors and a low-code environment that comes with a short learning curve. **Solutions cost less:** Little-to-no involvement from IT or developers means lower costs to implement and maintain. PA's "easy-to-iterate" approach makes it simple to expand complexity without skyrocketing dev costs. **The power of AI:** With its AI Builder add-on, Power Automate is outfitted with advanced, pre-built AI models giving you the power of AI, without the long runway of developing and training your own models. ‍ --- ## 5 Steps of Managing the Customers Dream URL: https://www.techfabric.com/blog/5-steps-of-managing-the-customers-dream Date: 2024-10-23 Author: TechFabric Over the years, I've seen a fair mix of customer engagement, from escalation calls to quick check-in calls, with clients. All in all, it is a great privilege to being able to represent the company during a product call or potential discussion related to visions. I've learned that every touchpoint has potential to improve the relationship. It all comes down to capturing the customer needs, brainstorming, and opening up the conversation to achieve a glimpse into the customers goals. These are some parts I would like to cover in today's blog. ![Two hands connecting two pieces of a puzzle.](/blog-media/b05be2e2-66fda0f8fe8999b34ff96d68_64b80ee3ce8c2a3fa1b305b1_a1b91306-2231-436e-97c8-074f061652d1_) ### **1): Nurturing and Capturing the hidden needs:** Where to begin, it all comes down to setting up a relationship with your counterpart (Client). Generally, in Europe, we take the time and try to have some small talk about breaking the ice before we go into business. It opens the discussion to focus on further business development, or they could talk about a vision or passion they see their company going in the upcoming five years? Everything starts at this point. The customer begins sharing their ambitions of what could be or should be their companies future state. Ensure you record the meeting because it is crucial to capture the verbal and non-verbal communication. In my opinion, making notes of the conference is difficult to get an accurate capture of the message customer was sending. > **If there is any one secret of success, it lies in the ability to get the other person's point of view and see things from that person's angle as well as from your own.** Henry Ford ![A woman looking at a board with different styled graphs.](/blog-media/f3761f04-66fda0f8fe8999b34ff96d6d_64b80ee4d7dd5e27b09902a7_25653440-70ae-4c11-b57b-0a21bd5f58d0_) ### **2) Brainstorm and The way to Great ideas:** Now we get to the exciting stuff, brainstorming. There are many ways of effective ways, the key is to be open-minded and allow anyone, I mean anyone, to add value. An intern could provide you with insights that a busy C level exec forgot to mention for example. So what now? We have some great ideas from top to bottom of the organization. We need to test them and start asking ourselves, is this what the customer is looking for, or are we over-engineering the idea? I always tend to keep close to down below general rules. - Who is your customer? - What problems are you solving? - How does your product solve those problems? - What are the key features of the product? Does it make sense, and are we adding value? If we overshot, do we need to start from scratch? It comes down to did I understand my customer correctly? Go back to the recordings if you are unsure, give them a quick call and get to business and circle back. ### **3) Building the Grand picture:** I am the type of person that likes to create visual overviews by whiteboard or digital software (digital whiteboard). This gives me the power to go granular into a process without losing the big picture. We are currently working with Miro (Love It) tool, which allows you to build process flows and allows you to do some design work (Yes, it will be a rough draft). The rules I usually apply: 1. Focus on the Problem 2. Walk-in Someone Else's Shoes 3. Get Feedback 4. Ask the Right Questions ### **4) Test & Check:** Whenever you got all the ideas together and start thinking of the picture, test, test, test, and test, try to pitch the idea to direct or indirect colleagues. They will most likely appreciate the fact that you see them as a valuable contributor to this project. Try to keep it diverse, check with the Sales rep, check with Engineering or Operations, pitch the concepts internally. ### **5) Effective Communication:** Now we get to the Creme de la cream. Which I also believe is one of the hardest parts to do, but practice makes perfect. It all comes down to whether I capture the customer's needs and sell it concretely, time effectively will and throw you off the guard. Also, decision-makers mindset would be something like this. 1. Decision-makers will cut through the bullshit and get to the point and will challenge you. 2. Decision-makers, especially C-level, are limited on time. If you cannot sell it in your time frame, go back to the drawing board. 3. Decision-makers naturally want to understand bottom-line results. 4. Etc. Focus on the WOW factor. This will help you seal the deal or get excellent customer satisfaction. Drop the 100 pages of PowerPoint to present, keep it short and to the point. Why do I say so? > **Sensory Memory- at this stage, the Memory is fleeting or quickly forgotten. It only takes as little as half a second to 2 seconds until your brain forgets it if the Memory is not reinforced in such a way that it would proceed to the next stage. Short-Term Memory- at this stage, if the Memory is repeated verbally, it can last up to 15–30 seconds in your brain. This is why you often forget the names of the people you meet at parties because you don't repeat them. Long-Term Memory- for your short-term Memory to become long-term Memory, it has to be repeated and should also be stored in the existing knowledge (or schemata) that you have.** According to Atkinson and Shiffrin (1968) ![A great product manager has the brain of an engineer, the heart of a designer, and the speech of a diplomat - Deep Nishar, VP of Product at LinkedIn](/blog-media/7d8cc8a2-66fda0f8fe8999b34ff96d70_64c3bbd69c6a1643c4ad8670_d0cdaaaf-31d7-466e-a727-fe0b4787a687_)