Articles

Configuring Grails for Horizontal Scaling

Horizontal scaling allows a Grails application to handle more traffic by running several application instances behind a load balancer. Instead of relying on…

Building custom URL mappings in Grails for better search visibility

Search engines reward clarity. When a URL reads like a human sentence instead of a cryptic database identifier, both crawlers and visitors find it easier to…

Building a Reusable Grails Plugin for Shared Domain Logic

Most Grails projects start small: a single team sketching a web app, a handful of GORM domain classes, services, and a controller layer wired by convention.…

Running Grails with Docker Compose for Local Development

Developing a Grails application on your laptop should feel light, repeatable and fast. Too often, however, the gap between a developer's machine and a staging…

Creating Grails Async Controllers for Non-Blocking Requests

A Grails controller normally receives an HTTP request, performs its work, and returns a response while the server thread remains occupied. That model is…

Using Grails With Apache Kafka For Event Streaming

Grails and Apache Kafka make a practical combination for applications that need to process business events reliably and at scale. Grails supplies…

Implementing Grails data binding with custom converters

When a Grails controller receives a request, the framework performs a quiet but crucial piece of work: converting incoming strings, JSON fields, and form…

Building a Grails PDF Generator with Templates and Plugins

Server-side PDF generation remains a quiet workhorse across Australian digital services, from utility bills in Melbourne to compliance reports for Sydney-based…

Creating Grails Scheduled Jobs With the Quartz Plugin

If you have ever built a Grails application that needs to run a report at 3am, send a reminder email every Monday morning, or tidy up stale records overnight,…

Optimizing Grails Application Performance With Profiling

Performance problems in a Grails application rarely come from a single line of code. Slow pages may be caused by inefficient database queries, excessive object…