Greeting
Happy New Year, everyone! Sorry I’ve been away for the last six months. I’ve had a lot of work projects to finish lately. Now that I have some time off for the holidays, I can finally write about some ideas I’ve had for a long time. Let’s keep it relaxed—this post won’t be too hard or technical.
Why I write this
TL;DR Many of organization are so underestimate “Dataverse”
I’ve helped many different customers with their Power Platform projects. When it’s time to pick a database, hardly anyone ever asks for Dataverse. Most of the time, they haven’t even heard of it.
People usually say “No thanks” to Dataverse because:
- “It’s too pricey.”
- “We need SQL.”
- “It feels slow.”
- “I don’t know what it is or if it’s any good.”
I get it. If you just want a database, Dataverse does cost a lot of money.
But wait! You aren’t just paying for a place to store data. The money you spend covers almost everything you need to build and run your business app.
Allow me to explain, let’s go to next paragraph
The truth of Dataverse

When people hear “we can store data in Dataverse,” they usually think, “Oh, it’s just a database.” That is only half right. It is a database, but it does so much more. Here are some of the big, extra features you get for free:
- Powerful Backbone It’s backed by Azure SQL and Azure Cosmos DB
- Built-in Logic It comes with a server running on the .NET Framework where you can customize your business logic attached to database
- Deploy your own code You can even write and deploy your own function
- Ready to Connect Every single table automatically gets its own REST API and Webhook.
- Safety First You get automatic backups and point-in-time restore without lifting a finger.
Powerful Backbone
The most annoying thing I hear is: “We’re going to use SQL for this project, so let’s go set up an Azure SQL database.”
Guys… come on. Dataverse is literally powered by Azure SQL. We already have it! It’s included with most Power Platform licenses. Why would you pay hundreds of dollars a month for a separate database when you’re already paying for one in your license?


For just $15–$20 a month (depending on your license), you get 20 GB of storage to start with. Honestly, that is way more than what most business apps actually need.
You get almost the exact same thing for 10 times less money. Sounds like a pretty good deal to me, doesn’t it?
You can even using SQL to query Dataverse data using SQL Server Management Studio
Just take instance url from Power Apps Maker portal



Now, to be fair, it’s not exactly the same as traditional SQL. Microsoft calls it “Dataverse SQL” and there are some specific queries or features that aren’t supported. But in my experience, that’s rarely a dealbreaker. There is almost always a workaround or a different way to get the same result.
Learn more about Dataverse SQL >> Microsoft Learn
Standard Dataverse tables run on Azure SQL, which is a fully managed relational database. However, Dataverse also offers another type called “Elastic tables.” These are designed to handle unstructured data or workloads that need to manage a huge volume of reads and writes with ultra-low latency. These are actually backed by Azure Cosmos DB. I won’t go too deep into this today, but you can learn more here: Dataverse elastic tables
Can Dataverse handle large amount of data
Good question! The answer is easy: Yes, it can. > Newcomers to the Power Platform might not realize that Dataverse is the backbone of Dynamics 365 CRM, which is used by massive businesses all over the world. So don’t worry—handling millions of records is just part of its daily routine!
I’ve seen Dataverse handle ~500,000 records (read/write/delete) that coming within just 6-8 hour time frame without breaking a sweat. If you have the license, you don’t need to worry about scalability. That’s Microsoft’s job now—let their algorithms deal with it!
Built-in Logic
“Then there’s something called a ‘Plugin.’ It might sound like a strange name, but you can just think of it as your own custom code. You deploy it to Dataverse and ‘attach’ it to any data operation on a table (like when a record is created or updated).
Plugin can be written using C#. Develop it in Visual Studio, build it and then deployed to your Dataverse environment using Plugin Registration Tool (PRT)


So, what does a Plugin actually do? Think of it as a set of rules that run automatically. For example:
- When an invoice status changes to “Confirmed,” the plugin copies all the details to the “Posted Sales Invoice” table for you.
- When someone adds a product to a sales order, the plugin checks the warehouse. If you’re out of stock, it stops the save and says, “Sorry, not enough inventory!”
- As soon as an order is marked as “Shipped,” the plugin automatically lowers the “on hand” count in your inventory.
“I know what you’re thinking: ‘Why write code when Power Automate or Power Fx can do the same thing?‘
The answer is performance and reliability. If you need to update 100 records, Power Automate might take 30 seconds or even minutes. A plugin? It finishes in 1–2 seconds because it runs natively inside Dataverse with zero network lag.
Also, think about data correctness. Have you ever had a Flow update one table but fail on the second, leaving you with messy data? With plugins, everything is one ‘transaction.’ If one part fails, everything rolls back. No broken data, ever. Sounds good?”
Learn more about plugin >> Microsoft Learn
Deploy your own code
This is one of the most powerful feature in my perspective.
Basically, this allows you to write any function or API in C#, deploy it to Dataverse, and then use it everywhere—Power Automate, Power Apps, or even through a Web API.
Have you ever run into a low-code wall where there just isn’t a function for what you need? For example:
- How do I make a QR code inside my app?
- Can I merge or split PDF files in a Flow?
- How do I add a watermark to a PDF?
- Is there a way to copy a whole record without manually typing every single column in a
Patch()function?
Sure, you could solve these problems with a third-party API. But wait—do you really want to pay extra every month just to generate a QR code or merge a document?
And let’s talk about “free” services. How long will they stay free? Will they even exist next year? More importantly, do you really want to risk sending your company’s private data to a random third-party website? That’s a nightmare for any security team.
You could build your own server, I guess… but then who manages it? Is it actually going to stay online?
You can skip all that headache by using a Custom Plugin in Dataverse:
All this frustuate problem can be solved by using Custom Plugin in Dataverse.
- No extra bills: Stop paying for random third-party subscriptions.
- Total Security: No data leaves your organization. Everything stays within your own “walls.”
- Zero Maintenance: No servers to fix. It just runs on Dataverse.
- Rock Solid: Since it runs on Azure, you get that sweet 99.9% uptime (SLA).
I’ve dedicated blog post about this >> Read here
Ready to Connect:
This is one of the most basic but useful feature.
Every table you create in Dataverse—and even the system tables—comes with its own REST API right out of the box. It fully supports all CRUD operations (Create, Read, Update, and Delete).

This is a game-changer. It allows you to integrate existing apps with Dataverse without doing any development work on the Dataverse side. Compare that to a traditional database like SQL Server or MySQL. Usually, you’d have to spend a week (or forever) building a secure, enterprise-grade API just to let other services talk to your data. Dataverse just has it ready on day one. What a cheater!?
Dataverse also supports Webhooks out of the box. Want your other services to get a “nudge” whenever something specific happens in Dataverse? Webhooks are ready to go with no extra setup needed. It’s that easy.
Learn more about Dataverse Web API >> Microsoft Learn
Learn more about Dataverse Webhook >> Microsoft Learn
Safety First
We all know how important backups are. If something goes wrong, you need a safety net. But if you manage your own server, a “perfect” backup system is expensive and a pain to maintain. You have to worry about how long to keep, how fast you can restore them, and how often to run the backups. The better the system, the more it costs.
Microsoft basically gives you enterprise-grade backup for “free” with every Dataverse environment.

- Automatic Protection: Every environment is backed up every 30 minutes.
- Retention: They keep those backups for 7 to 28 days (depending on your setup).
- Point-in-Time Restore: This is the cool part. You can literally “jump back in time” to a specific minute and restore your data with just a few clicks. It’s like the mistake never happened..
Learn more about backup >> Microsoft Learn
Conclusion
So, do you still think Dataverse is “just an expensive database”? I hope not!
If you only look at the price tag, yeah, it might look pricy. But when you look under the hood and see the Azure SQL, Cosmos DB, instant APIs, and enterprise-grade backups, it’s a total steal. Why spend your time (and your boss’s money) building things from scratch when you can just be a “cheater” and use what’s already there?
Stop fighting the license and start using the power. Use those plugins, trust the scalability, and let Microsoft’s algorithms handle the boring stuff while you look like a hero.
Anyway, it’s good to be back! I hope this post helps you explain to your customers (or your team) why Dataverse is actually a no-brainer. I’ll try my best not to disappear for another half year!
🎉 Happy New Year again, and happy building 🎉
