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

  • 830