Amanpreet Singh
12115016
Software Development Intern
San Francisco Office, California
AIM
Help all the world’s people and businesses manage and adapt to climate
HOW DO THEY DO IT?
FIELDS AND DATA INTEGRATION TEAM
Fields Console
and
Spatial Index
PROJECTS
Fields Console
WHY?
Typical Flow
Request
Router
Parse Request
Has params
Wait for user input
Auth Proxy
Otherwise
Fields API
Render
AWESOME
Technology
- ClojureScript
- Clojure's Core Async Library
- React
- Leaflet
Spatial Index
WHAT IS SPATIAL?
BUT WHY?
Fields Service
Fields data store
World
API
BACKGROUND
CHALLENGES
- Bulk Queries
- Complex Spatial Queries
- Queries across all users
Example Use Cases
- Notify all users within a boundary
- Find number of fields with area < 20 units
- All the fields with particular source (Equipment generated etc.)
- Get unique acres within a boundary
Fields Spatial Index
Fields Service
Fields data store
World
API
Spatial
Index
Allows making bulk and very complex spatial queries on field data
CHALLENGE
HOW DO WE BUILD INDEX?
ENTER CLOJURE
CLOJURE ADVANTAGES
-
Highly Scalable
-
Concurrent
-
Insuperably powerful
-
Compact
-
Functional
-
Code is Data
ElasticSearch
- JSON Key value store (Database)
- Supports GeoJSON
- Distributed
- Highly Scalable
Spatial
Index
Feeder
(One time job)
Fields API
FEEDER
CHALLENGE
HOW DO WE UPDATE IT?
Spatial
Index
Feeder
(One time job)
Fields API
Updator
Updator
(Keep it updated)
Events Queue
CHALLENGE
HOW DO WE EXPOSE IT?
Spatial
Index
Feeder
(One time job)
Fields API
LIB
Updator
(Keep it updated)
Lib
(Expose it)
Fields API
Internal World
Events Queue
Fields Events Publisher
Thank You!
Questions?
Training and Seminar Presentation
By Amanpreet Singh
Training and Seminar Presentation
- 843