Problems: Separating out these services prevented the team from leveraging the full strength around more GraphQL advanced capabilities such as server-side batching and caching. At the same time, we were in parallel, trying to simplify the client side programming model and how Apollo initializes the client based upon a well defined endpoint was creating another set of pain points for the development team.
Solutions: By leveraging GraphQL stitching, we have built out a robust API strategy that is both consumable and scalable with the ability to add additional micro services in the future.
How: GraphQL stitching is an additional runtime service that is deployed to an existing topology. The
GraphQL Proxy routes traffic between Ingress Controller and the GraphQL endpoints.
Garbage in, garbage out. Quality data beats fancy algorithms. The article explains what is Data Cleaning, and how to get Clean Data.
The degree to which the data conform to defined business rules or constraints, such as type, range, mandatory, uniqueness, Set-Membership, foreign key, regex patterns, cross-field validations, etc. It's about accuracy, completeness, consistency, and uniformity.
The workflow towards high-quality data is:
- Inspection: Detect unexpected, incorrect, and inconsistent data.
- Cleaning: Fix or remove the anomalies discovered.
- Verifying: After cleaning, the results are inspected to verify correctness.
- Reporting: A report about the changes made and the quality of the currently stored data is recorded.
Notable growth stack:
- Analytics: Google Analytics, Amplitude.
- Raw Data: Webhooks, Kinesis, Amazon S3, Google Cloud PubSub
- Email: Braze, Iterable, Customer.io
- Ad: Facebook, Google Adwords, Linkedin, Quora, Bing, Pinterest
- Mobile Attribution: AppsFlyer, Adjust, Branch
- Warehouses: BigQuery, Snowflake, AWS (really, all are growing)
- CRM: HubSpot
- Live Chat: Drift
- Performance Monitoring: Sentry
- Referrals: Friendbuy
- SMS & Push Notification: Braze, UserEngage
- Session Replay: FullStory, Hotjar
- Make clean, single-purpose commits
- Write meaningful commit messages
- Commit early, commit often
- Don’t alter published history
- Don’t commit generated files
A new book got released.