In this thesis, I describe the process of implementing a Representational
State Transfer (REST) Application Programming Interface (API) designed
as a web-based interface for data exchange using standard web requests. The
implemented service, named kafka-offset-reader, enables reading from and
writing to Apache Kafka, a distributed platform for event storage and stream
processing. The interface is based on the Kafka REST Proxy, which provides access to Kafka through standard HyperText Transfer Protocol (HTTP)
requests. The implemented solution introduces several significant enhancements, including rack-aware data fetching, which takes into account the physical distribution of servers, as well as connection pooling for more efficient
management of network operations. Additional performance optimizations
are also incorporated. These improvements result in substantially increased
throughput when handling a large number of concurrent requests, a scenario
in which the performance of the existing Kafka REST Proxy begins to degrade noticeably.
|