In this event we are going to have 3 talks. Benjamin will give an intro to Bucket4j - a rate limiting library - and how they use it. Yaron is going to share a library they open sourced to do "xpath" selection for GraphQL result node. Last, Nathan is going share their amazing journey from event sourcing, preached in the last 5-6 years to plain CRUD with event publishing - a super interesting journey with some good take aways.
Thanks to Intuit Israel for sponsoring the event!
AGENDA
18:00 - 18:30 Mingling, food, and drinks
18:30 - 18:40 Opening words
18:40 - 19:05 [HEBREW] Leveraging Bucket4J for distributed rate limiting using redis / Benjamin Benchaya - Intuit
19:05 - 19:20 [HEBREW] Introduce a unique path selection solution for the GraphQL document / Yaron Yehuda Karni -Intuit
19:30 - 20:20 [HEBREW] Beyond Event Sourcing: Embracing CRUD for Wix's High-Growth Platform / Natan Silnitsky - Wix
Leveraging Bucket4J for distributed rate limiting using redis
Hosting a web service, particularly one that runs on a distributed system, can often lead to incoming traffic spikes that potentially threaten to overwhelm your servers. To protect your service from such situations, you can apply rate limiting or throttling capabilities, to moderate both the flow and number of requests that a client can make to your service in a given time interval. In this session we will learn how to easily add rate-limiting capabilities to your distributed service using Bucket4J and Redis. Bucket4j is a powerful Javapowerful, Java library used for implementing token-bucket-based rate limiting. It is easily integrated into any Java application or service.
Benjamin Benchaya
Benjamin is a Staff Backend Developer and powering prosperity at Intuit for the past 7 years.
Introduce a unique path selection solution for the GraphQL document
We faced the challenge of transforming a selected GraphQL document node. The problem was selecting the GraphQL node to transform. To address this, we developed a path selection approach similar to xPath and JSON path for GraphQL documents named gXPath. An expression language with supportive code has been developed.
Once the node was selected, the library provided advanced transformation capabilities for GraphQL documents.
It’s an open source library: https://github.com/intuit/eXtendGql
Yaron Yehuda Karni
Yaron is an architect for the past 20 years. Previously a Chief architect for Amobee, Imvition and Ribbon Innovation lab Architect and Leader
Beyond Event Sourcing: Embracing CRUD for Wix's High-Growth Platform
This talk delves into the journey from event sourcing back to a CRUD-based model for Wix's microservices.
Event sourcing, a pattern where state changes are stored as a sequence of events, coupled with CQRS has been a cornerstone for systems like Wix Stores' product catalog service. It enabled detailed auditing and "time travel" debugging capabilities and projections for optimized queries, but introduced code complexities in state reconstruction, versioning, and validation. As Wix's platform grew, the development velocity suffered, prompting a shift towards a more straightforward and unified CRUD model.
This talk will explore the challenges of maintaining an event-sourced system, and why Wix transitioned to a platformized CRUD approach. We will demonstrate how this shift has led to a more open platform, with seamless API integrations, automatic domain events, and a robust event-driven architecture that maintains data consistency and resilience while not sacrificing, auditing, debugging and query optimizations.
Join us to learn from Wix's experience in balancing simplicity, extensibility, and performance in a high-growth environment, and how embracing the humble CRUD has supercharged their development velocity, resilience, and scalability.
Natan Silnitsky
Natan is a backend-infra tech lead at Wix.
He's part of a group that provides solutions for Wix's platformization and development needs that accelerate development of microservices and serverless functions at Wix. Before that he was tech lead for a team building event-driven libraries and tools on Kafka.
A co-maintainer of Greyhound, an open-source Kafka client, and a Scala enthusiast.
Natan is a renowned speaker, blogger, and advocate for clean, functional code, efficient development, and exceptional software design.
FOOD
Light food, light drinks, and beer will be served courtesy of Intuit Israel.
RECORDING
We are recording, as always, this meetup and uploading it to our YouTube channel (be sure to subscribe), but please keep in mind asking questions about stuff you don't understand is only possible when you attend the live event.