I have a table with both geography and geometry types. I use google to fetch lat and long and enrich the columns when a user creates a location. When I write to geometry and geography, geography returns a different coordinate than provided in variables.
Expected result is correct lat and long updated in correct column.
Not expected. Random locations populated in my database.
Any insight appreciated!

GeoJSON describes an order for coordinates: they should go, in order: [longitude, latitude, elevation]
Geography is a spatial data type used to represent a feature in geodetic coordinate systems.
Geometric data types represent two-dimensional spatial objects
You are sending a mutation to Hasura with the coordinate in the wrong order [latitude, longitude]. Since your longitude value is not valid in the geodetic coordinate system. The value is saved wrong in the database.
For the geometric type it is saving the way you are sending since the geometric type is just a two-dimensional spatial object and has nothing to do with the geodetic coordinate system.
Thanks @leoalves for clearing that up!
Most helpful comment
GeoJSON describes an order for coordinates: they should go, in order: [longitude, latitude, elevation]
Geography is a spatial data type used to represent a feature in geodetic coordinate systems.
Geometric data types represent two-dimensional spatial objects
You are sending a mutation to Hasura with the coordinate in the wrong order [latitude, longitude]. Since your longitude value is not valid in the geodetic coordinate system. The value is saved wrong in the database.
For the geometric type it is saving the way you are sending since the geometric type is just a two-dimensional spatial object and has nothing to do with the geodetic coordinate system.