Fireside Gatherings API

Sample Sub-pages:

Find Relevant "Meetups"

What is "relevant?"

The query specifically looks for this:

withinTimeWindow AND isCommunityMatch AND matchesAllProperties AND

(belongsToOrganizer OR isCheckedIn OR

((nearLocation OR matchesAnyIdentifiers) AND isApprovalStatusMatch AND matchesAllIdentifiers)

)

Making that performant required caching meetups for a shifting "soon" timeframe, and then filtering on the rest of the criteria.

Other means of querying Meetups

We wrote implementations for other common queries like findUnended and findUpcomingNearby.

We also used QueryDSL to allow dynamic queries using the http query parameters.

Metrics, for the win

This application, more than any others, showed me how important Metrics (as a part of general observability) are.

We were able to track durations of specific parts of our query response (db access vs in-process filtering, for instance).

Reporting on specific metadata made for some interesting results.

findRelevant queries should filter to only show nearby meetups - but during certain events, that could be circumvented.

With the metrics we reported, we could detect this.