Event List API (Orange, 2018-2019)
Info
- Employer Orange Romania
- Project type Software development
- Period 2018-2019
- My Role Developer
- Technologies Java, PL/SQL, Shell
- Architecture Model-view-controller, Layered, Client-server patterns
- Keywords REST API, Stateless, Caching, Data aggregation and normalization, Multithreading
- Skills developed Caching, stateless, partitioning
Description
REST API that serves as an abstract presentation layer for a huge event database (hundreds of billions of records).
The purpose of the API is to present to several clients the list of the subscriber's events in a normalized format (example of clients: invoicing systems, user account’s web version, custom reports for corporate clients).
The application is written Java using Spring Boot and PL/SQL and exposes a web service as a REST API. It has more data sources, performing most of the data operations on the DBMS side by passing SQL queries (CRUD) dynamically from Java (through Hikari). Then the resulting sets are mapped, sorted, normalized, paginated and formatted in Java and the final response is returned to the client in JSON format (using Jackson).
Since some requests on this API may return a very large amount of data, the application uses a separate database schema dedicated to caching.
The application is stateless, capable to run on multiple instances and has no single point of failure.
Team
While working on this project I collaborated with an amazingly creative and dedicated team. Please reach out to the following team members for further references:
- Daniela Niculae – Billing Enablers and Convergent Services Manager @Orange Romania
- Delia Ioana Lepadatu – Software Development Engineer @Orange Services
- Marius Popescu – Senior Software Development Engineer @Orange Romania
Work with me
I am an experienced engineer when it comes to building REST APIs for both enterprise and startup applications. During my career as a software engineer, I have been studying in-depth the best practices and mathematical concepts behind a REST API and I am always looking forward to taking on challenges.
If your business needs a component like this or if you have a problem with your REST API, feel free to contact me anytime.