diff --git a/spring-geode-docs/src/docs/asciidoc/index.adoc b/spring-geode-docs/src/docs/asciidoc/index.adoc new file mode 100644 index 00000000..1ba140b1 --- /dev/null +++ b/spring-geode-docs/src/docs/asciidoc/index.adoc @@ -0,0 +1,94 @@ += Spring Boot for Apache Geode & Pivotal GemFire Reference Guide +John Blum +:doctype: book +:toc: +:toclevels: 4 +:source-highlighter: prettify +:numbered: +:icons: font + +[[abstract]] +Welcome to _Spring Boot for Apache Geode & Pivotal GemFire_. + +Spring Boot for Apache Geode & Pivotal GemFire provides the convenience of Spring Boot's _convention over configuration_ +approach using _auto-configuration_ with the Spring Framework's powerful abstractions and programming model to simplify +the development of Apache Geode or Pivotal GemFire applications in a Spring enabled context. + +Secondarily, Spring Boot for Apache Geode/Pivotal GemFire strives to provide developers with a consistent experience +when building and running Spring-powered, Apache Geode/Pivotal GemFire applications, whether a developer's Spring Boot +applications are running locally, or in a managed environment, such as https://pivotal.io/platform[Pivotal CloudFoundry] (PCF). + +This project is a continuation and logical extension of the work that began in Spring Data for Apache Geode & Pivotal GemFire +with the relatively new https://docs.spring.io/spring-data/geode/docs/current/reference/html/#bootstrap-annotation-config[Annotation-based Configuration Model] +and the goals set forth with that: _enable application developers to *get up and running* as *quickly* and as *easily* +as possible_. In fact, Spring Boot for Apache Geode/Pivotal GemFire builds on the very +https://docs.spring.io/spring-data/geode/docs/current/reference/html/#bootstrap-annotation-config[foundation] +built into Spring Data for Apache Geode/Pivotal GemFire (SDG) as of the Spring Data *Kay* _Release Train_. + +[[introduction]] +== Introduction + +Spring Boot for Apache Geode & Pivotal GemFire automatically applies auto-configuration support for several key +application concerns, or _Use Cases_, including, but not limited to: + +* _Look-Aside Caching_, using either Apache Geode or Pivotal GemFire as the caching provider in +https://docs.spring.io/spring/docs/current/spring-framework-reference/integration.html#cache[Spring's Cache Abstraction]. +* Using Apache Geode or Pivotal GemFire as a https://en.wikipedia.org/wiki/System_of_record[_System of Record_ (SOR)] +to persistent application state consistently and reliably with +https://docs.spring.io/spring-data/commons/docs/current/reference/html/#repositories[Spring Data Repositories]. +* Running _distributed computations_ with Apache Geode/Pivotal GemFire's +http://geode.apache.org/docs/guide/16/developing/function_exec/chapter_overview.html[Function Execution API], +conveniently invoked with Spring Data for Apache Geode/Pivotal GemFire +https://docs.spring.io/spring-data/geode/docs/current/reference/html/#function-annotations[POJO-based, Annotation Support for Function Executions & Implementations]. +* Registering interests in and reacting to a stream of events with Apache Geode/Pivotal GemFire +http://geode.apache.org/docs/guide/16/developing/continuous_querying/chapter_overview.html[Continuous Query (CQ)] +where process handlers can be defined as simple Message-Driven POJOs (MDP) using Spring's +https://docs.spring.io/spring/docs/current/spring-framework-reference/integration.html#jms-mdp[Message Listener Container], +which is https://docs.spring.io/spring-data/geode/docs/current/reference/html/#bootstrap-annotation-config-continuous-queries[configurable] +and https://docs.spring.io/spring-data/geode/docs/current/reference/html/#apis:continuous-query[implemented] +in Spring Data for Apache Geode/Pivotal GemFire CQ. +* Data Serialization with Apache Geode/Pivotal GemFire +http://geode.apache.org/docs/guide/16/developing/data_serialization/gemfire_pdx_serialization.html[PDX] +for which Spring Data for Apache Geode/Pivotal GemFire provides first-class +https://docs.spring.io/spring-data/geode/docs/current/reference/html/#bootstrap-annotation-config-pdx[configuration] +and https://docs.spring.io/spring-data/geode/docs/current/reference/html/#mapping.pdx-serializer[support]. +* Security, encompassing all aspects of the term, including +http://geode.apache.org/docs/guide/16/managing/security/authentication_overview.html[Authentication] / +http://geode.apache.org/docs/guide/16/managing/security/authorization_overview.html[Authorization] +as well as Transport Layer Security (TLS) using Apache Geode/Pivotal GemFire's +http://geode.apache.org/docs/guide/16/managing/security/ssl_overview.html[Secure Socket Layer (SSL)]. And, once again, +Spring Data for Apache Gedoe/Pivotal GemFire has you covered with both +https://docs.spring.io/spring-data/geode/docs/current/reference/html/#bootstrap-annotation-config-security[Auth] +and https://docs.spring.io/spring-data/geode/docs/current/reference/html/#bootstrap-annotation-config-ssl[SSL]. + +While Spring Data for Apache Geode & Pivotal GemFire offers a simple, convenient and declarative approach for +configuring all these really powerful Apache Geode/Pivotal GemFire features, Spring Boot for Apache Geode +& Pivotal Gemfire makes this even easier to do as we will explore throughout this Reference Guide. + +[[getting-started]] +== Getting Started + +In order to be effective with and productive using Spring Boot for Apache Geode/Pivotal GemFire, it is helpful +to understand the foundation on which this project was built. + +Of course, our story begins with the core Spring Framework itself, and specifically, the foundation laid down +by the Spring container's https://docs.spring.io/spring/docs/current/spring-framework-reference/core.html#spring-core[core technologies and concepts]. + +Then, our journey continues with the extensions built into Spring Data for Apache Geode & Pivotal GemFire (SDG) to truly +simplify the development of GemFire/Geode applications in a Spring context, using Spring's powerful and highly consistent +programming model. This part of the story was greatly enhanced in Spring Data Kay, with SDG's new +https://docs.spring.io/spring-data/geode/docs/current/reference/html/#bootstrap-annotation-config[configuration model using annotations]. +Though this new annotation-based configuration approach provides sensible defaults out-of-the-box, its use +is very explicit and it assumes nothing. That is, you still must tell SDG what you want. + +Next, we venture into Spring Boot and all of its wonderfully expressive and highly opinionated "_convention over configuration_" +approach for getting the most out of your Spring GemFire/Geode-based applications in the quickest/easiest way possible. +We do that by combining Spring Data for Apache Geode/Pivotal GemFire's Annotation-based Configuration with Spring Boot +using "_auto-configuration_" to get you going even faster and more reliably so that you are productive from the start. + +As such, it would be pertinent to begin your Spring Boot education +https://docs.spring.io/spring-boot/docs/2.0.0.BUILD-SNAPSHOT/reference/htmlsingle/#getting-started[here]. + +Finally, we arrive at Spring Boot for Apache Geode & Pivotal GemFire. + +include::clientcache-applications.adoc[]