Our service tier is composed of RESTful micro-services written in Java and Spring Boot. Typically, resource representations are serialized to JSON. We also use HAL-JSON in some cases. Java services persist their relational data to PostgreSQL through Hibernate or JOOQ.
Clients of these services vary from REACT-based single-page web applications to native platform (iOS, Android) applications to Rails applications backed by MySQL.
As our analytics and reporting needs grow, we are separating operational and analytical data. We are investing in a data platform to combine disparate sources through real-time stream processing of events as well as batch-oriented processing of relational data.
The shared services and components are pooled together and referred to as Nicodemus. The Nicodemus charge is â€śto combine the most common features into one platform.â€ť This ranges from drop-in components that are utilized in hundreds of locations to our robust shared services. Weâ€™re constantly expanding and growing our platform to meet the needs of our businesses, and most importantly, the needs of our customers!