Skip to content
This repository has been archived by the owner on May 21, 2024. It is now read-only.

Remove documentation from this repo after it has been moved to google/transit #28

Open
wants to merge 14 commits into
base: master
Choose a base branch
from
Prev Previous commit
Next Next commit
Update FeedHeader.md
isabelle-dr authored May 12, 2024

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
commit 3284eaf5e42525e430dc9c723db559f2556b66ce
10 changes: 1 addition & 9 deletions en/FeedHeader.md
Original file line number Diff line number Diff line change
@@ -1,9 +1 @@
## Practice Recommendations Organized by Message

### FeedHeader

| Field Name | Recommendation |
| --- | --- |
| `gtfs_realtime_version` | Current version is "2.0". All GTFS Realtime feeds should be "2.0" or higher, as early version of GTFS Realtime did not require all fields needed to represent various transit situations adequately. |
| `timestamp` | This timestamp should not decrease between two sequential feed iterations. |
| | This timestamp value should always change if the feed contents change - the feed contents should not change without updating the header `timestamp`.<br><br>*Common mistakes* - If there are multiple instances of GTFS Realtime feed behind a load balancer, each instance may be pulling information from the realtime data source and publishing it to consumers slightly out of sync. If a GTFS Realtime consumer makes two back-to-back requests, and each request is served by a different GTFS Realtime feed instance, the same feed contents could potentially be returned to the consumer with different timestamps.<br><br>*Possible solution* - Producers should provide a `Last-Modified` HTTP header, and consumers should pass their most recent `If-Modified-Since` HTTP header to avoid receiving stale data.<br><br>*Possible solution* - If HTTP headers cannot be used, options such as sticky sessions can be used to ensure that each consumer is routed to the same producer server. |
⚠️ NOTE: The best practices have been moved into the [google/transit](https://github.com/google/transit/tree/master/gtfs-realtime/best-practices) repository. This repository is now archived.