Figaro is an embeddable database engine for Microsoft .NET developers building mission critical data applications. It runs directly within the application that uses it - no separate server is required, and no human administration is needed. Figaro manages XML documents using an API as well as XQuery and offers advanced data management services including concurrent access, transactions and master-slave replication for high availability and fault tolerance.
Figaro offers .NET developers a fast, reliable, scalable and portable XQuery engine with sophisticated XML content storage in a packaged that can be embedded inside an application. Berkeley DB XML is equally at home managing content at nodes within resource- or services (ROA/SOA), storing data for an ASP.NET web application, and managing massive volume of genomic or geographic data requiring complex query analysis.
XML is still an industry standard for publishing and exchanging data among systems As the volume of this data increases, it becomes increasingly critical that applications and services be able to store, manage, and retrieve data without minimal effort going into database operations or data translation efforts. Figaro allows .NET developers to store and retrieve industry data in the format its requested format, without resorting to an external storage system or expensive and time-consuming setup and administration. Figaro runs directly inside the application that uses it. Figaro stores data and documents in XML, and supports an extensible XQuery engine and high-performance .NET APIs for querying data.
With the proven Oracle Berkeley DB database engine, Figaro inherits all the features, performance, reliability and scalability that Berkeley DB delivers. Figaro can store terabytes of data in a single document repository. The database can survive power outages, software errors and hardware failures without losing data. It supports simultaneous access to the document store by scores of users.
There are several uses for the Figaro XML database in the .NET Framework technology stack. RESTful APIs and microservices, Office document management servers and systems, integration platforms, content management systems, authentication and user role management services can find several advantages using Figaro as their repository. High-performance networking devices like switches, routers and gateways use the same embedded database engine to manage control information and the data that flow through them. Powerful enough for network hardware, powerful enough to handle your application load.
A common requirement of these systems is a fast, local, persistent store for structured data. Low latency and high throughput are crucial. Figaro eliminates runtime overhead by operating within the embedding application, providing direct memory access rather than client/server based access to content, removing the roundtrip to and from server resources during runtime, translating into better performance and scalability.
Figaro is intended for use within an application, for applications that need to store data quickly and run in an unattended fashion. The variety of applications that can take advantage of its use is broad, ranging from desktop applications to microservices to XBox games. Figaro gives .NET developers control over virtually every aspect of the deployed solution. Developers can configure Figaro to meet the needs of the application and to operate within the constraints of the intended deployment target.
For example, Figaro developers can declare a wide variety of indices in their document repository. Individual nodes in a document, the presence or absence of edges in the document graph and the value of named attributes may all be stored in an index for fast retrieval at query time. (See Specifying Index Strategies in the documentation for more details)
In addition, Figaro allows the developer to decompose a document into smaller units, or nodes, for storage. This improves update speeds, since only part of the document need be rewritten if and when it changes. This also improves read performance for queries that want part of, but not all of, a document. (See the Figaro introduction for a better understanding of node and document storage).
Figaro provides developers with data management services optimized for XML documents and data. Its support for XML Schema and XQuery/XPath for data manipulation mean that Figaro drops seamlessly into an XML-based application while also making your data more fluid and easily transformable and supportive of JSON or other formats. Because Figaro runs directly in the application, it provides superior performance without the need for additional hardware platforms or human resources to maintain the system.