RavenDB’s multi-model approach and unique features provide Playwaze with agility, cost-savings, and performance when developing or optimizing new features in a complex site and app. See how an organization of 6 people has created and refined a wealth of features with an impressive time to market.
About Playwaze
In addition to providing a digital platform for UK colleges and universities, in the past year, Playwaze has partnered with the UK’s HAF program to help disadvantaged kids and parents find, sign up for, and pay for various activities during holidays and summer breaks. A year into the project’s inception, they managed to launch a wealth of features for youth, parents, and sports organizations.
They’ve provided youth and parents the ability to browse live and online activities that interest them in their area, get reminders, be notified if they double-booked, and pay when required.
For organizations, they’ve provided tools to report participation for government funding. Organizers can limit the number of participants per event while sending notifications to wait-listers if participants cancel. They can also access participation analytics for reporting and marketing purposes. These organizations must report the participation of disadvantaged kids to be eligible for government funding of their events.
As you can see, the platform Playwaze has developed is very complex because it provides various services for youth, parents, inter-collegiate athletes, and sports organizations while having to fulfill multiple bureaucratic requirements. Just as impressive as the complexity of data that their system processes and the speed that it returns results, is that all of these new features have been built and maintained by a staff of 6 employees in about a year (as of 2022).
Why Playwaze prefers RavenDB
Fast release cycles and time to market
When users need a new feature quickly, Playwaze can get the feature out in an impressively agile manner. The flexibility of RavenDB’s indexing and document modeling means it’s inexpensive to make changes later. They use bulk inserts to copy their data into a development environment, refine and test their new model, and then plug that into production without affecting their users.
Auto-indexes reduce guesswork
Playwaze developers don’t need to predict every query scenario their users might need because RavenDB’s auto-indexes can make indexes on the fly, then dispose of them if they’re not used for a while. They save their servers lots of costly work that other databases do until the team realizes that an index needs to be written.
Fast, inexpensive transactions
Transactions are inexpensive, and latency is minimal thanks to RavenDB features such as:
- Including multiple related documents in one transaction
- Client and server-side caching with instant, inexpensive freshness validation
- Data subscriptions to the client
- Lazy requests that batch requests from the server and trigger the work only when the value of one of them is needed
Queries are instantaneous and cheap
Queries in RavenDB are also impressively fast because they always work via an index. By using our native multi-map-reduce indexes, Playwaze queries can quickly provide information from multiple collections by querying the index. Data is aggregated and computations are constantly being done behind the scenes by the indexes whenever the raw data changes. Map-reduce is one of RavenDB’s robust Static Indexes that virtually eliminate the time it takes to run complex queries because you can define them to do the work behind the scenes and get the aggregated values ready for the queries.
Feature-rich
RavenDB is a smart data platform where the databases are an integral part. So far, RavenDB has had the solution for every infrastructure need that Playwaze has had. As Josh Levett, Technical Team Lead at Playwaze says, “RavenDB has solutions to problems that you don’t realize you have yet.” Still, if needed, Playwaze will have simple integrations to SQL, Kafka, RabbitMQ, PowerBI, Grafana, and more.
Adaptable scaling
Every time Playwaze anticipates a surge in usage, they simply upscale their cloud instance to improve performance and throughput, then downgrade later to reduce costs.
Spatial search
Playwaze processes information regarding geographic location to return spatial queries. For example, when participants search for an activity, they can filter the results not only by the type of sport but also by the distance from their home or travel plans and still get fast results.
Native, fully-featured search
In addition to spatial queries – aggregations, facets, highlights, and suggestions are all part of the package. Results are automatically ranked according to relevancy (and can be boosted.) You can specify search operators, use prefixes and wildcards, get suggestions and similar terms, show text snippets with terms highlighted, and more.
Document extensions
Attachments such as images and videos can be added, removed, and indexed. Furthermore, they use counters to track poll results.
Difficulties they’ve had with RavenDB
Although RavenDB’s OLTP database can provide analytic metrics, it is so intertwined with everything their site does that it is limited in how much data analytics it can do. The only area where they may need an external solution is when they want to beef up their analytics offerings. They might use RavenDB’s OLAP ETL to improve their analytics options.
What Josh Levett from Playwaze would like new users to know
The RavenDB GitHub community is very active and helpful. If the answer to his question isn’t already there, he usually gets a response within hours. Also, the book Inside RavenDB and the webinars helped him better understand how to work with the database effectively.
Learn about lazy operations. You won’t regret the effort.
To reduce trips to the server, use Include() to pull information from related documents.
To further minimize the amount of data transferred, use projections if you don’t need queries to load the entire document.
Static indexes will make complex queries much faster.