{"id":16119833,"url":"https://github.com/piomin/sample-hazelcast-spring-datagrid","last_synced_at":"2025-03-16T08:32:49.826Z","repository":{"id":44525314,"uuid":"89575316","full_name":"piomin/sample-hazelcast-spring-datagrid","owner":"piomin","description":"sample spring-boot applications integrated with hazelcast imdg, and providing hot cache with hazelcast and striim ","archived":false,"fork":false,"pushed_at":"2025-03-05T02:18:47.000Z","size":122,"stargazers_count":37,"open_issues_count":1,"forks_count":13,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-05T03:23:39.296Z","etag":null,"topics":["caching","data-grid","hazelcast","hibernate","jpa-caching","kubernetes","minikube","mysql","spring-boot","spring-data-hazelcast","spring-data-jpa","striim-cluster"],"latest_commit_sha":null,"homepage":"https://piotrminkowski.com/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/piomin.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-04-27T08:35:08.000Z","updated_at":"2025-03-05T02:18:50.000Z","dependencies_parsed_at":"2023-12-21T20:33:49.984Z","dependency_job_id":"8d857b41-de12-4267-8a49-627fb4d76ff7","html_url":"https://github.com/piomin/sample-hazelcast-spring-datagrid","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piomin%2Fsample-hazelcast-spring-datagrid","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piomin%2Fsample-hazelcast-spring-datagrid/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piomin%2Fsample-hazelcast-spring-datagrid/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piomin%2Fsample-hazelcast-spring-datagrid/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/piomin","download_url":"https://codeload.github.com/piomin/sample-hazelcast-spring-datagrid/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243807485,"owners_count":20351000,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["caching","data-grid","hazelcast","hibernate","jpa-caching","kubernetes","minikube","mysql","spring-boot","spring-data-hazelcast","spring-data-jpa","striim-cluster"],"created_at":"2024-10-09T20:55:13.719Z","updated_at":"2025-03-16T08:32:49.226Z","avatar_url":"https://github.com/piomin.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Hazelcast With Spring Boot Demo Project [![Twitter](https://img.shields.io/twitter/follow/piotr_minkowski.svg?style=social\u0026logo=twitter\u0026label=Follow%20Me)](https://twitter.com/piotr_minkowski)\r\n\r\nIn this project I'm demonstrating you the most interesting features of [Hazelcast](https://hazelcast.com/) and its integration with Spring Boot and Spring Data to build cache or distributed in-memory data grid.\r\n\r\n## Getting Started \r\nCurrently you may find here some examples of application that integrates Hazelcast with Spring Boot and Spring Data. Some of them are divided into the branches and described in a separated articles on my blog. Here's a full list of available examples:\r\n1. Using Hazelcast as 2nd level JPA Cache for **Hibernate** and **MySQL** database. The example is available in the branch [master](https://github.com/piomin/sample-hazelcast-spring-datagrid/tree/master). A detailed guide may be find in the following article: [JPA caching with Hazelcast, Hibernate and Spring Boot](https://piotrminkowski.com/2017/05/08/jpa-caching-with-hazelcast-hibernate-and-spring-boot/).\r\n2. Using Hazelcast with [Striim](https://www.striim.com/) for enabling hot cache between **MySQL** database and in-memory data grid. The example is available in the branch [striim](https://github.com/piomin/sample-hazelcast-spring-datagrid/tree/striim). A detailed guide may be find in the following article: [Hazelcast Hot Cache with Striim](https://piotrminkowski.com/2017/08/09/hazelcast-hot-cache-with-striim/).\r\n3. Using Hazelcast cluster on **Kubernetes** with Spring Boot. The example is available in the branch [master](https://github.com/piomin/sample-hazelcast-spring-datagrid/tree/master). A detailed guide may be find in the following article: [Hazelcast With Spring Boot on Kubernetes](https://piotrminkowski.com/2020/01/31/hazelcast-with-spring-boot-on-kubernetes/).\r\n4. Using Hazelcast cluster with Spring Boot that programically stores data in the two sources: **MySQL** and Hazelcast. The example is available in the branch [master](https://github.com/piomin/sample-hazelcast-spring-datagrid/tree/master). A detailed guide may be find in the following article: [In-memory Data Grid with Hazelcast](https://piotrminkowski.com/2017/05/10/in-memory-data-grid-with-hazelcast/).\r\n\r\n### Usage\r\n\r\nIn the most cases you need to have Maven and JDK8+. In the third example with Kubernetes you will have to run **Minikube** on your machine. The best way to run the sample applications is with IDEs like IntelliJ IDEA or Eclipse.  \r\n\r\n## Architecture\r\n\r\nOur sample microservices-based system consists of the following modules:\r\n- **employee-service** - a module which is a simple Spring Boot application for storing `Employee` objects in Hazelcast and MySQL (optionally)\r\n- **person-service** - a module which is a simple Spring Boot application for storing `Person` objects in Hazelcast and MySQL (optionally)\r\n- **employee-service-kubernetes** - a module dedicated only for 3rd example based on Kubernetes.\r\n\r\nThe following picture illustrates the architecture for running Hazelcast on Kubernetes (**Minikube**) (**Example 3**).\r\n\r\n\u003cimg src=\"https://piotrminkowski.files.wordpress.com/2020/01/hazelcast-spring-boot-kubernetes.png?w=1024\" title=\"Architecture\"\u003e\u003cbr/\u003e\r\n\r\nThe following picture illustrates the architecture for running Hazelcast with **Striim** as a hot cache for MySQL database (**Example 2**).\r\n\r\n\u003cimg src=\"https://piotrminkowski.files.wordpress.com/2017/08/striim-figure-1.png\" title=\"Architecture\"\u003e\u003cbr/\u003e\r\n\r\nThe following picture illustrates the architecture for running Hazelcast with Spring Boot as in-memory data grid that programically stores data in two sources (**Example 4**).\r\n\r\n\u003cimg src=\"https://piotrminkowski.files.wordpress.com/2017/05/hz1.png\" title=\"Architecture\"\u003e\u003cbr/\u003e\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpiomin%2Fsample-hazelcast-spring-datagrid","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpiomin%2Fsample-hazelcast-spring-datagrid","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpiomin%2Fsample-hazelcast-spring-datagrid/lists"}